Poznámka na začátek: Toto malé povzdechnutí vzniklo během několika málo minut jako výplod mé choré mysli. Jednoduše jsem položil ruce na klávesnici a vypustil jsem ze sebe nahodilé myšlenky, které ve mně bublají a kynou již nekolik let. Nikdy jsem nebyl schopný to vyjádřit normální cestou, tak jsem zkusil automatickou tvorbu. Bez řádné interpunkce, odstavců, mezer a podobných zbytečností jsem jedním dechem sepsal to, co mně trápí už nějakou dobu. Jak jsem postupně rozebíral toto téma, více a více jsem se nořil do asociací a myšlenky se draly na povrch jedna přes druhou. Vznikal naprosto nesourodý text, který postrádá základní sloh, jednu myšlenku i jasnou pointu. Každý, koho se téma týká to snad pochopí. Nechtěl jsem vyjádřit svůj názor, ani přijít s pointou, natož pak s řešením. Prostě a jednoduše -- potřeboval jsem to ze sebe dostat. A proč to vzniklo? Každý kdo dělá do počítačů a dělal na nich nejakou seriózní práci (resp. se o to snažil) určitě pochopí, když napíšu tento seznam: GNUplot, LaTeX, X server, OpenOffice.org, Xfig, Inkscape, ...
Občas, když narazím na nějaký problém na počítači, přemýšlím, proč jsem se vlastně dal na techniku. Proč jsem se tehdy na základní škole začal zajímat o počítače? O kolik bych měl život jednodužší, kdyby počítač pro mně byly Windows, textový editor Word, internet web, a prohlížeč Explorer. Používal bych počítač jako každý druhý. Neřešil bych problémy, prostě bych zavolal odborníka, který by vyřešil všechny vyskytnuvší se problémy s tím ďábelským vynalezem minulého století. I když, možná toho ďábla trochu přeceňuju, když počítače nazývám ďábelské. Něco takového by ani ten největší komiksový padouch nevymyslel. Počítače vznikly, aby lidem pomáhaly při každodenní činnosti. Zrychlily otravné, opakující se činnosti a dovolily lidem soustředit se na podstatné záležitosti a zbytečnosti nechat strojům. Zpočátku tomu možná tak bylo. Když občas čtu články a zážitky z prehistorie výpočetní techniky, rád bych se ocitl v době, kdy první borci razili dírky do štítků, které tehdy ovládaly sálové počítače. Objevovali neznámé, každý operátor takového stroje byl matematik, programátor, elektrikář a tak trochu i kutil a dobrodruh. Tehdy to byla romantika. Jasně, každý se k počítačům nedostal. Většina práce proběhla na papíře a až později, v okamžiku kdy byl program napsán, odladěn a vyražen se přišlo k počítači a začínal samotný výpočet. Později ti dobrodruzi začali používat klaviatury, později pojmenované klávesnice. Pak dokonce i vektorové obrazovky. To bylo vzrůšo. První řádky Unixu, tehdy samozřejmě ještě neexistujícího operačního systému. Ostatně on to zpočátku ani OS nebyl. Někde jsem četl, že operační systémy, multitasking, více-uživatelské systémy, to všechno vzniklo jenom proto, že výpočetní čas těch gigantických strojů byl drahý, takže se používaly jenom na seriózní práci. Jenomže ti první dobrodruzi byli hračičkové a chtěli si hrát. A tak, aby mohli pracovat a zárověň si i hrát, implementovali něco, z čeho vznikl Unix. Víceprocesový, víceuživatelský systém. Kdybych měl možnost se vrátit v čase, vybral bych si ten okamžik, kdy Ritchie s Kernigenem sedí u terminálu PDP-11, když vytvářeli první verze jazyka B, později pak C. Chtěl bych vidět první řádky Unixu. Chtěl bych společně s nimi zažít to vzrušení z nepoznaného. Pokládat základní kameny něčeho, co ovlivní životy mnoha dalších lidí v následujících staletích (enjoy The Hell). Chtěl bych být první s diskutujích na nově vznikající akademické síti. V dobách, kdy Internet byl ARPANET, neexistovali spameři, ani se po síti neproháněly trendy puberťačky a jejich narcistické fotky. Tehdy možná ještě lidé používali počítače a ne naopak, jak je tomu dnes. Jasně, abyste použili počítač k práci, museli jste mít v hlavě encyklopedii a blokové schéma celého systému do poslední elektronky, ale když už jste napsali program, byl váš! Fungoval a na to jste se mohli spolehnout. Ne jak je tomu dnes. Vícejádrové stroje, gigahertze, gigabajty, SSD disky, pakety obletí svět za pár milisekund. Ale stále se pachtíme s problémy, z minulého století. Navíc se k tomu přidaly problémy další. Používání počítače k seriózní práci je dnes ošemetná záležitost. Přináší více starostí a problémů jak užitku. Programátoři už neví nic o fungování procesoru, na co je dobrý tranzistor, nebo jak funguje bootloader. Proč se o to zajímat? Dnes se programuje vysokoúrovňově. Jsme naprosto izolováni od stroje na kterém výsledný kód pojede. Optimalizace je sprosté slovo a při vývoji programů se neuvažuje, prostě se buší do klávesnice. To mi občas připomíná to o té tisícovce šimpanzů, kteří možná za tisíc let nabuší do psacího stroje nového Shakespeara. Možná nabuší, spíš ale ne. I uživatelé jsou dneska jiní. Už to nejsou geekové, kteří se vzájemně znají z univerzit. Jsou to obyčejní lidé z různých oborů. Jejich smyslem života není počítač. Takoví uživatelé chtějí programy hotové, nechtějí si nic programovat, nechtějí nic řešit, chtějí pracovat. A také chtějí programy rychlé. Barevné. Animované. Funkční. Spolehlivé. A hlavně je chtějí včera a nejlépe zadarmo. A to je asi ten největší kámen úrazu. Programátoři jsou jen lidé. A jakmile se kódovaní stane prací a ne jen koníčkem, jakmile se kódováním musíte živit a ne si jenom hrát, posunují se i vaše priority. A pokud ne, nadřízení vás donutí. Pak už si nemůžete dovolit ten luxus sednout si, před implemetací té zajímavé fičury, k emailové diskusi a s kolegy z vedlejší instituce probrat možné implementace a popřemýšlet nad rozhraním. Ne. Musíte kódovat rychle a bez keců. Hack or die! Implementace se mění za pochodu, stejně jako zadání. Uživatel tlačí na termíny, nadřízený zase na finance. Vzrušení prvních hackerů ustupuje stresu a rozladění. A důkaz? Stačí se podívat na jakýkoliv program z minulého století a z poslední doby. Spousta lidí nadává na CVS, na X server, na HTTP protokol, na všechny ty staré vykopávky, které by už měly zemřít na smetišti počítačových dějit. Způsobují nám žaludeční problémy, kdykoliv na ně pomyslíme. Silně nevyhovují dnešním potřebám. Ale sakra! Pořád se používají! Tehdy se programy dělaly s láskou a rozumem. Jediný důvod, proč neustále zrychlujeme počítače, zvětšujeme paměti a zrychlujeme připojení k internetu je přítomnost těchto archaických programů. Lepí se na ně další a další vrstvy, které řeší problémy vrstev pod nimi. Další a další tuny tmelu, který to drží pohromadě. O co jednodužší by bylo je vyměnit. Udělat jeden rázný krok -- vyměnit ten šrot za nový, lesklý a nablýskaný, který dalších pár let vydrží. Pro příklady nemusím chodit daleko. A hned dám jeden za všechny -- IPv4 versus SSL, IPsec, QoS. Vždyť IPv6 už je tu nějaký ten pátek. O vyčerpání adres z čtverkové verze se mluví už dlouho. Ale stále se lepí vrstvy a zpevňuje se to tmelem. A proč? Manageři by nejspíš začali okamžitě mluvit o penězích a zbytečných investicích. Síťaři zase o zbytečné práci pro nic. Uživatelé by řekli: ”WTF?” Začarovaný kruh. IPv6 nepřináší nic tak důležitého aby to technici začali nasazovat do praxe. Uživatelé si to nežádají, protože ani netuší proč by je to mělo zajímat. Manageři zase mluví řečí peněz a jsou tedy z jiného světa. A to všechno jenom proto, že se ke klávesnicím dostali obyčejní uživatelé. Na internet přišli investoři, firmy a jiná havěť. Z prostoru mezi klávesnicí a židlí se vytratili dobrodruhové, oldschool hackeři a různí vědátoři. Z programů se vytratil zdravý selský rozum a nahradily jej peníze a tmel. Programuje se rychleji než se vůbec začne uvažovat. Programy se nedělají s láskou a rozvahou, ale s deadlinem v kalendáři a osmi-hodinovou pracovní dobou. To proto dnes raději lpíme na těch starých vykopávkách. Protože ty fungují. Jsou robustní a i když nevyhovují dnešním potřebám, je jednodužší, rychlejší a levnější je přiohnout, než znova implementovat. A pokud se tohle nezmění (jakože asi ne), tak si svá osobní pekla při používání zkamenělin musíme trpět. Včera, dnes i zítra. Lepší to nebude, leda bych se šeredně mýlil...
Poznámka na konec: Kdo nabyl dojmu, že mám pifku na open-source svět a tu tak zvanou ”komunitu”, tak to ROZHODNĚ není pravda. To je nejspíš jenom zdání a fakt, že posledních několik let ujíždím na OSS software to jenom podpořuje.