Sedláček: Programy jsou čistá racionalita, … , žádné emoce, .. Ach, jak se mýlí

1.03.2013 – 9:42 am

V včerejších HN jsem si přečetl článek o restartu ekonomiky v určitých cyklech, od známého ekonoma Tomáše Sedláčka (přístup k placené verzi článku). Na úvod pan Sedláček (bojuju s tím, nenazývat ho hned z kraje familiérním “Tomáš”) píše:

Kdo znáte seriál IT crowd nebo jste kdykoli volali počítačový servis, víte, že nejčastější věta, kterou od počítačových expertů můžete slyšet, zní asi takto: zkuste to vypnout a zase zapnout. Prostě restartujte! A tady je ta zajímavá věc: i počítačové programy se zasekávají.

Programy jsou čistá racionalita, matematické algoritmy, nuly a jedničky, žádné emoce, žádné inkonzistence, žádná psychologie, žádné filozofické názory, žádné animal spirits… nic. Nic než logika. A přes to všechno se systém čas od času zhroutí a je potřeba jej restartovat. Tedy přesněji řečeno: na chvíli funkčně uvést v nefunkčnost.

Článek se dále zbývá potřebou restartovat ekonomiku s odkazem na Bibli. Proč ne, smysl to dává. Já bych ale tady chtěl nabourat všeobecný mýtus, že programy “nemají duši” a není v nich místo pro emoce.

Programy totiž, píšou často programátoři (nebo jiné programy, ale i tam prosákne něco z původní ideje). Píšou je ve chvílích maximálního duševního vypětí. Ne nadarmo jsou programátoři karikováni jako lidé s prázdným, lehce vytřeštěným pohledem: snaží se ve svém vnitřním světě přijít na to, proč to sakra zase nefunguje. Jsou honěni nesmyslnými manažerskými termíny a sliby zákazníkům (“… není problém, naši hoši to zvládnou naimplementovat za týden”).

Už jste vymysleli někdy něco racionálního v jednu hodinu ráno? Proč je běžný kód zaplevelný komentáři “FIXME TODO, This has to be rewritten, but works for now, leaving. Need mor sleep.” a podobně? Programy jsou přímo destilovány z programátorských emocí. Neznám žádnou další práci, kdy výsledkem celodenního soustředěného úsilí jsou tři smazané řádky kódu!

Programování samo je jednak stav mysli – ideální je dosáhnout nirvány a být 100% soustředěný na danou činnost – o což se všichni snažíme, ale nikomu se to nedaří, jsouce neustále vyrušováni kolegy, šéfy, zákazníky, internety (o dětech při práci z domu ani nemluvím).

Programování je ale i Filosofie, životní styl a postoj. Existují různé filosoficko-náboženské směry, vyznávající styl psaní závorek (to je opravdu ZÁSADNÍ věc, osobně jsem v tomhle směru dost vyhraněný a dostane-li se mi do pazour kód, obsahující složenou závorku za podmínkou nebo funkcí až na dalším řádku, bez milosti přeformátovávám, stejně jako ukončenou složenou závorku na řádku před else – bez milosti vkládám další zalomení), psaní názvů proměnných (je rozdíl napsat proměnnáSDlouhýmNázvemproměnná_s_dlouhým_názvemdlouháproměnná nebo prostě p). Různí lidé řešeší různé problémy (vymýšlí různé algoritmy) různě – v závislosti na svém naturelu, momentálním rozpoložení, momentální fyzicko-psychické odolnosti (“to bych ale musel napsat nejlíp dvě navzájem rekurzní funkce … brr, na to teď nemám.”)

Dále se programátoři vyhraňují programovacím jazykem – doslova světem, který do určité míry determinuje jejich uvažování – šťastní jsou multilinguální programátoři, kteří volí vhodný nástroj podle typu úlohy. Většina nás patlalů žije uzavřeno ve svém světě jednoho-dvou jazyků a snaží se nalámat úlohu do tohoto světa. Jenomže stejně jako technická dokumentace se má psát v němčině a smlouva ve francouzštině, má se na něco zvolit java, na něco php a na něco python (kecám – php by se nemělo zvolit nikdy na nic!).

Dále jsme vyhraněni v názoru na vývojové prostředí – a to taky ovlivňuje vzhled a kvalitu výsledného produktu. Jsou zapřísáhlí emacsisti, vimkaři, eclipsáci. Po těch posledních už to v ničem jiném neotevřete, ale za to potřebujete ohromnýho molocha k tomu, abyste danou věc aspoň otestovali. Zmínil jsem náboženství-filosofii Open Source? Zmínil jsem se o programování na určitý operační systém?

O filosofii programování vycházejí knihy (vřele doporučuji Eric S. Raymond: Art of Unix programing, vyšlo i v češtině). Rozebírající programování vlastně z pohledu Zenu. A další – nejsem v tomhle směru příliš sečtělý, jsa přeci jenom především lesník (byť programující).

Takže shrnuto: programy nejsou přísně racionální chladné věci. Jsou to živoucí organismy, mající duši, jsou determinovány prostředím (vnitřním světem), ve kterém je a žije jejich tvůrce. Programy se rodí, žijí (jejich život je asi nejbohatší, když je nahrajete na github), množí a přepisují (že by je vlastní rodič nepoznal). A když něco nefunguje? Koho by sakra napadlo, že to budete zkoušet zrovna takhle? Ono “restartování” je prostě vynulování hodnot, začne se od začátku (a doufá se, že někde nějaká neošetřená podmínka najednou nenastane).

Share Button

Post a Comment