Konec starých programátorských časů

„Tak nám to programátorské řemeslo upadá,“ pravila jednoho dne zamyšleně posluhovačka paní Müllerová Josefu Švejkovi. „A dejte pokoj,“ odvětil oslovený, který si, sedě u terminálu, mazal soubory. „Zase? Co já pamatuju, tak upadalo už v roce 1955, 1968, 1973, 1985, 1991, 1995 a od roku 2000 každoročně…“

Staré časy jsou oblíbeným tématem pro diskuse lidí, kteří dospěli do věku „druhé generace“. Téměř bez výjimky jsou v naší paměti staré časy spojeny s ryzími charaktery, s dobou, kdy muži byli opravdovými muži, ženy opravdovými ženami a deset deka salámu bylo nějakýho salámu. Ne jako dneska.

Od sentimentálního fňukání nad starými časy je jen krůček ke kýčovitému žehrání na mladou generaci. „Mladí se vůbec neučí, nezajímají se o svou budoucnost, řemeslo neznají, kultura jim nic neříká, jen by trávili čas radovánkami a hrami“ zní klasický leitmotiv těchto stesků už po mnoho tisíc let – ten citovaný pochází ze starobabylónské hliněné destičky a byl zapsán klínovým písmem. V antickém Římě si staří stěžovali, že mladí dnes už ani Homéra nazpaměť neznají, což je úpadek.

Ve světě výpočetní techniky se generace střídají tak rychle, že člověk ani nemusí být obzvlášť velký pamětník, aby viděl, jak se tyto stesky neustále opakují (už ani ASCII kódy nazpaměť neznají, což je úpadek) a jak jsou vždy stejně marné, liché a nesmyslné. V roce 1980 vyšla v časopise Amatérské Radio příloha „Mikroelektronika“, a v předmluvě napsal ing. Jaroslav Budínský tato slova:

Ohlasy na seriál o programování samočinných počítačů neznají zlatý střed, jsou buď jednoznačně pro, nebo jednoznačně proti. (…) Nejčastějším argumentem proti bývá „k čemu je to dobré, to nebudu do smrti potřebovat“ a další, přibližně stejná tvrzení tohoto druhu. K tomu snad jen jedno: konzervatismus je v technice stejně hluboko zakořeněn, jako v ostatních oborech lidské činnosti. Stejné argumenty jsme zaregistrovali, když jsme začali uveřejňovat články o tranzistorech (k čemu je to dobré, když jsou k dispozici mnohem dokonalejší prvky, elektronky), o integrovaných obvodech, o deskách s plošnými spoji, číslicové technice apod.

Podobný pocit mívám občas z diskusí zde na Zdrojáku (a po pravdě nejen zde). Každá nová technologie je uvítána sprškou skeptických reakcí v podobném duchu. Možná by se dala vypozorovat i nepřímá úměra: Čím silnější odpor proti nějaké novotě, tím pravděpodobnější je, že se stane na dlouhou dobu standardem.

Rozumějme si dobře – ona trocha konzervatismu ve vztahu k technologickým novinkám není na škodu. V rozumné míře přináši zdravou skepsi a odstup a brání nesmyslným výstřelkům. Je na místě se ptát, co nového daná věc přináší, k čemu bude, jak nás posune dopředu… Je na místě pochybovat a vážit argumenty. Ale taky je potřeba novinku poznat a prozkoumat; mnohé „diskuse“ vypadají jako a priori odmítnutí bez sebemenší snahy porozumět.

Nová technologie změní IT silou, která se rovná odporu vývojářů touto technologií vyvolanému. – Archimedův pravnuk

Na konci osmdesátých let jsem četl, jak se jistý inženýr elektronik ve VTM rozčiloval, že ta mladá generace „neumí derivovat, integrovat ani neumí spočítat tříbodový souběh superhetu; umí jen kouřit, hrát si hry na počítači a vyrábět předčasně děti.“ Součástí dějinného zvráceného smyslu pro humor je i to, že ta mladá generace, co nic neuměla, jen si hrála na počítači a vyráběla předčasně děti, jsou dnešní čtyřiceti- či pětačtyřicetiletí. A ti už stihli zkritizovat dnešní třicetileté (Assembler neumí… chtěl bych je vidět, packaly s céčkem, jak píšou ovladač pro komunikaci s tiskárnou Centronics do 256 bajtů, jako jsme psali my, jó to byly časy), ti stihli zkritizovat dnešní dvacetileté (Neumí Javu ani C, jen patlají weby v PHP, to nejsou programátoři), a ti již brzy zkritizují svou „mladší IT generaci“ (Pořádný CRUD v PHP nenapíšou, na všechno mají generátory kódu, bez nich by byli ztracení… Chtěl bych je vidět, jak píšou framework!)

Zkrátka pocit, že s rozvojem technických možností ubývá odbornosti, je konstantní a lineární jev. Vždy jsou nějací „starší“, kteří museli umět věci, co ti mladí ani nechápou, a kdyby to měli dělat, tak jsou ztracení, jo za nás, to byly časy…

Jen ať se ostatní moří stejně, jako jsem se mořil já!

Jenže v těchle stescích jaksi zaniká pravá podstata vývoje. Vývoj, a v IT a programování obzvlášť, slouží k ulehčení práce. Programujeme a vyvíjíme ne proto, abychom si práci přidělali (no…), ale naopak, aby jí ubylo; abychom ty nudné, nezáživné a mechanické části naší práce předali strojům. Pokrok slouží k tomu, aby ti, co přijdou po nás, nemuseli řešit stejné problémy, co jsme řešili my, a mohli místo toho stavět na výsledcích naší práce. Jinak by nešlo o pokrok, ale o samoúčelnou technologickou onanii. My vám vykopeme základy pro barák, ale nenecháme vás stavět a zase je zaházíme; vykopejte si svoje, holenkové, ať víte, jaká to je fuška!

Pokud jsem dohlédl dále než jiní, bylo to proto, že jsem stál na ramenech obrů. – Sir Isaac Newton

Líbí se mi jeden z programátorských citátů, který říká: „Nízkoúrovňový jazyk je takový, kde místo toho, co píšete, musíte řešit, jak to napsat.“ Tento citát poměrně přesně ilustruje inovace: jakmile se v nejpoužívanějším jazyce té doby začne častěji řešit to, JAK vlastně problém zapsat, napíšou ti nejlepší nové nástroje, kde se tahle JAK řešit nemusí, a místo toho se mohou programátoři soustředit zase na podstatu problému.

Výsledkem je, že zítřejší programátoři nebudou muset umět velkou část toho, co denně řešili včerejší – protože ti včerejší jim připravili cestu. Zítřejší budou muset umět jiné věci, protože jejich úkolem bude navázat na to, co už je, a posunout věci dál, pro další generaci.

A nechme prosím stranou oblíbené brblání o „základech řemesla“, všichni víme, že k základům řemesla nepatří ani pamatovat si ASCII zpaměti, ani znát SQL syntaxi pro čtyři databázové stroje nebo umět na požádání napsat ovladač grafické karty. Ne, vážně ne. Základem řemesla je umět rozložit problém na dílčí kroky, které dokáže stroj provést; říká se tomu algoritmizace. (Na druhou stranu – pokud někdo neovládá algoritmizaci, měl by se poohlédnout po kariéře v jiném oboru, než je programování.)

„Ty kluku pitomá… (ty seš celej táta)“

Takový roztomilý vedlejší efekt toho všeho je, že při vzpomínání na staré zlaté časy mohou někteří snadno podlehnout dojmu, že programátoři obecně hloupnou. Je to oblíbený klam; ve skutečnosti si už jen nemusí pamatovat balastní informace o tom, jak řešit problémy, co (vy)řešili jejich předchůdci.

Programátoři postupem času ztratili mnoho schopností – např. zadat bootloader pomocí přepínačů na předním panelu, překládat instrukce assembleru do strojového kódu pomocí tabulek, řešit optimalizaci strojového kódu a využití registrů, řešit paměťovou optimalizaci na bajty, řešit garbage collecting, pamatovat si kryptická chybová hlášení (ERROR IJK27 ON LINE 338), pracovat s děrnými štítky, vytvářet si vlastní databázové stroje, vytvářet si vlastní překladače, … Každou z těchto věcí musel svého času umět každý programátor; pak ta potřeba vyšuměla a znát je musí už jen pár opravdových systémových specialistů, pro ostatní to jsou opravdu jen balastní informace – ovšem ono to tak krásně šimrá ego, že? „My museli vědět víc o procesorech, dnešní takzvaní programátoři ani netuší, kolik má procesor registrů! Úpadek!

Není to úpadek, jen stojí na našich ramenou. Nechme je stát co nejpohodlněji; ostatně sami stojíme na ramenou jiných.

Kdyby byly stesky nad „hloupnutím programátorů“, co předvádí každá programátorská generace, pravdivé, tak by dnešní programátoři museli být už polodementní opice, co tlučou do klávesnice kamenem a vydávají skřeky, kterými kritizují ty mladé, že už ani neumí vzít pořádně kámen do pracek. No, zjevně nejsou… Navzdory steskům o hloupnutí se obor rozvíjí dál, a dokonce čím dál rychleji.

Porovnání křivky povyku (Hype Curve) s odporem vývojářů proti dané technologii. Nejprve je nízký. S popularizací technologie prudce roste a zůstává vysoký. Jakmile si technologie projde údolím obskurity, láme se odpor vývojářů, a ti novou technologii náhle milují. Postupem času ale zjišťují její nevýhody, odpor opět stoupá a nakonec je nahrazena novou technologií.

Porovnání křivky povyku (Hype Curve) s odporem vývojářů proti dané technologii. Nejprve je nízký – o technologii nikdo nic moc neví. S popularizací technologie prudce roste a zůstává vysoký. Jakmile si technologie projde údolím obskurity, láme se odpor vývojářů; ti novou technologii náhle milují a pomohou ji vyvést na „pláň produktivity“. Postupem času ale zjišťují její nevýhody a limity. Odpor opět stoupá a nakonec je nahrazena novou technologií.

Rozbijeme svoje stroje?

V IT je trochu ironické, že lidé, kteří se snaží přenést co nejvíc mechanické práce na stroje, často náhle zjišťují, že velká část právě té jejich práce, jejich „vysoce odborné činnosti“, na níž si stavěli profesní sebevědomí, je nahrazena strojovou prací. V IT se častěji než kde jinde setkáme s tím, že naše vlastní snaha a schopnost nás připraví o práci; že naši „odbornost“ najednou už nikdo nepotřebuje, protože jsme svoje know-how vložili do programů, které nás teď nahradily. Čím mechaničtější naše práce je, tím snáze bude nahrazena.

Jsou v podstatě jen dvě možnosti, jak s tímto osudem naložit. Buď své dlouho budované znalosti a schopnosti oželet ve chvíli, kdy začnou být nahraditelné, posunout se dál, naučit se něco nového, něco, co stroj hned tak nenahradí, nebo si sednout na lavičku v parku a stýskat si, jací jsme za našich mladých let byli žádaní odborníci a jak doba a znalosti upadají…

Tváří v tvář reálnému rozvoji civilizace je průběžné hořekování nad úpadkem jen tisíciletí trvající sentimentální omyl lidí, kteří byli nakonec předběhnuti dobou, protože přestali utíkat s ní. Každý bude nakonec předběhnut těmi odpočatými, kterým ušlapal cestu. Ale takový už je lidský osud.

A vývojářský jakbysmet.

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Komentáře: 185

Přehled komentářů

trsek Veľmi pekne napísané
Jaro Re: Veľmi pekne napísané
Ctenar Pekny
plastique Re: Pekny
Elektron112 Re: Pekny
Jerry12 Re: Pekny
vtech paradni clanek
Polish Pekne napsane
Hulka Re: Pekne napsane
8 robocops Re: Pekne napsane
Honza Re: Pekne napsane
David no jo, jenze...
lobo Re: no jo, jenze...
David Re: no jo, jenze...
Cechjos Re: no jo, jenze...
JaJa Re: no jo, jenze...
Kenn Re: no jo, jenze...
Radovan Re: no jo, jenze...
andrejk Re: no jo, jenze...
Radovan Re: no jo, jenze...
blizzboz Re: Konec starých programátorských časů
brk Nj, ale? ;o)
Laethnes Re: Nj, ale? ;o)
ja Re: Nj, ale? ;o)
Laethnes Re: Nj, ale? ;o)
uf Re: Nj, ale? ;o)
Laethnes Re: Nj, ale? ;o)
Laethnes Re: Nj, ale? ;o)
Nox Re: Nj, ale? ;o)
Laethnes Re: Nj, ale? ;o)
František Kučera Re: Nj, ale? ;o)
MW Re: Nj, ale? ;o)
František Kučera Re: Nj, ale? ;o)
Peter Re: Nj, ale? ;o)
Hulka Re: Nj, ale? ;o)
uf Re: Nj, ale? ;o)
brk A ještě jedna nostalgická
martin sousek Re: A ještě jedna nostalgická
sourcer.cz Re: A ještě jedna nostalgická
100% Lenin Re: A ještě jedna nostalgická
Hulka Re: A ještě jedna nostalgická
Biktop Re: A ještě jedna nostalgická
Hulka Re: A ještě jedna nostalgická
Biktop Re: A ještě jedna nostalgická
Zaboj Campula Re: A ještě jedna nostalgická
JS Re: A ještě jedna nostalgická
kos Re: A ještě jedna nostalgická
uf Re: A ještě jedna nostalgická
uf Re: A ještě jedna nostalgická
Ivan Nový A teď ještě s tablety přijdeme o klávesnici :-)
janpoboril Re: A teď ještě s tablety přijdeme o klávesnici :-)
newman Re: A teď ještě s tablety přijdeme o klávesnici :-)
janpoboril Re: A teď ještě s tablety přijdeme o klávesnici :-)
bwpow Re: A teď ještě s tablety přijdeme o klávesnici :-)
Le Papier Blanc Ano, ale...
Jindru to za nasich mladejch casu...
Čelo Re: to za nasich mladejch casu...
Radiceta Re: Konec starých programátorských časů
oldman úpadek
Fenix Inu, někteří tu mezi námi jsou, alespoň doufám
Hulka Re: Inu, někteří tu mezi námi jsou, alespoň doufám
uf Re: Inu, někteří tu mezi námi jsou, alespoň doufám
Pavel Křivánek Re: Konec starých programátorských časů
Frykulín Freecoolin Re: Konec starých programátorských časů
Martin Malý Re: Konec starých programátorských časů
Jenda Re: Konec starých programátorských časů
bwpow Re: Konec starých programátorských časů
pankreas Re: Konec starých programátorských časů
Vinicius Re: Konec starých programátorských časů
Naith_cz Re: Konec starých programátorských časů
MartinX Re: Konec starých programátorských časů
Jenda Re: Konec starých programátorských časů
JS Re: Konec starých programátorských časů
Pavel Křivánek Re: Konec starých programátorských časů
uf Re: Konec starých programátorských časů
bark Re: Konec starých programátorských časů
uf Re: Konec starých programátorských časů
Radovan Re: Konec starých programátorských časů
Jenda Re: Konec starých programátorských časů
Oxymoron Re: Konec starých programátorských časů
Biktop Re: Konec starých programátorských časů
markoniuss Připomínání v PHP
Pindal Re: Připomínání v PHP
kk Re: Připomínání v PHP
kk Re: Připomínání v PHP
Michal Zahradnicek Re: Konec starých programátorských časů
Zilogat0r Clanek je budovatelsky rozjuchany a optimisticky...
marwyn Re: Clanek je budovatelsky rozjuchany a optimisticky...
jj Re: Clanek je budovatelsky rozjuchany a optimisticky...
Michal Augustýn Re: Clanek je budovatelsky rozjuchany a optimisticky...
bwpow Re: Clanek je budovatelsky rozjuchany a optimisticky...
kk Re: Clanek je budovatelsky rozjuchany a optimisticky...
Ondřej Mirtes Re: Clanek je budovatelsky rozjuchany a optimisticky...
Cermi Re: Clanek je budovatelsky rozjuchany a optimisticky...
bark Re: Clanek je budovatelsky rozjuchany a optimisticky...
Zilogat0r Re: Clanek je budovatelsky rozjuchany a optimisticky...
Michal Augustýn Re: Clanek je budovatelsky rozjuchany a optimisticky...
k3b Perfektne napsany clanek!
vetesnik Tleskám
mat Genialni clanek
Preston Pigglesworth Dovolím si nesouhlasit
Martin Malý Re: Dovolím si nesouhlasit
A.S.Pergill Vidím tu jeden problém
Martin Malý Re: Vidím tu jeden problém
kk Re: Vidím tu jeden problém
Tisnovsky Re: Vidím tu jeden problém
A. S. Pergill Re: Vidím tu jeden problém
Staon Re: Vidím tu jeden problém
A. S. Pergill Re: Vidím tu jeden problém
František Kučera Re: Vidím tu jeden problém
A. S. Pergill Re: Vidím tu jeden problém
Michal Kára Re: Vidím tu jeden problém
Biktop Zas tak bych to nezlehčoval
Zilogat0r Re: Zas tak bych to nezlehčoval
Naith_cz Re: Zas tak bych to nezlehčoval
Tisnovsky Re: Zas tak bych to nezlehčoval
Naith_cz Re: Zas tak bych to nezlehčoval
Tisnovsky Re: Zas tak bych to nezlehčoval
Tisnovsky Re: Zas tak bych to nezlehčoval
petrib Re: Zas tak bych to nezlehčoval
Biktop Re: Zas tak bych to nezlehčoval
A. S. Pergill Re: Zas tak bych to nezlehčoval
Tsch Nic nového pod sluncem
Radovan Re: Nic nového pod sluncem
ITLover Re: Konec starých programátorských časů
Tom5 A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Tom5 Re: A umí vůbec něco?
backup Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Tom5 Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Biktop Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Biktop Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Biktop Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Martin Malý K tomu zmoudření trhu...
Zilogat0r Re: K tomu zmoudření trhu...
Zilogat0r Re: K tomu zmoudření trhu...
Martin Malý Re: K tomu zmoudření trhu...
František Kučera Re: A umí vůbec něco?
Martin Malý Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Zilogator Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
Zilogat0r Re: A umí vůbec něco?
Flasi Re: A umí vůbec něco?
backup Re: A umí vůbec něco?
Biktop Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
I/O Re: A umí vůbec něco?
jehovista Re: A umí vůbec něco?
Oxymoron Souhlas i nesouhlas
Michal Augustýn Re: Souhlas i nesouhlas
kolemjdoucí neprogramátor Re: Souhlas i nesouhlas
patrony paráda
muf Rádoby populární , ba přímo populistický blábol
juna(k) Re: Rádoby populární , ba přímo populistický blábol
nemo A co ?
František Kučera Stoupající abstrakce… a složitost.
imploder Re: Stoupající abstrakce… a složitost.
Michal Kára Re: Stoupající abstrakce… a složitost.
littleli A přece se točí...
Oxymoron Re: A přece se točí...
op Konzervatismus ve vztahu k technologickým novinkám
Radovan Re: Konzervatismus ve vztahu k technologickým novinkám
peregrin neplatí pro všechny
uf Prima clanek
Honza Co s tím?
pje Zglaštanovaní
Flasi Re: Zglaštanovaní
pje Zglajchšaltování
Jindru omezená pamět člověka
humrpytel Neco malo zajimavych protiargumentu
Zdroj: https://www.zdrojak.cz/?p=3436