„Zajímá mě, jak umožnit lidem podívat se na to, co programy, které používají, dělají, případně je upravit tak, aby fungovaly podle jejich představ,“ říká Tomáš Petříček z Katedry distribuovaných a spolehlivých systémů Matematicko-fyzikální fakulty Univerzity Karlovy. Programování se věnuje celý život a letos mu vyjde o historii programování kniha.
Ačkoliv pochází z rodiny dvou filozofů (otec Miroslav je významnou postavou Filozofické fakulty UK), sám se vydal směrem mimo humanitní vědy. „Můj přístup ke knihám je asi takový, že když se podívám na polici, tak vidím, kolik knih se vejde do banánových krabic,“ směje se s nadsázkou vědec, jehož knihu pod názvem “Cultures of Programming” chystá v letošním roce vydat Cambridge University Press.
„Bude to snaha podívat se na historii programování a snažit se interpretovat interakci různých pohledů na to, co programování vlastně je,“ shrnuje obsah díla Tomáš Petříček, jenž v letech 2011-2017 dělal na prestižní britské univerzitě Cambridge doktorát a v Anglii nakonec strávil přes deset let. Mimojiné působil i na Alan Turing Institute, a čtyři roky vyučoval na University of Kent, než se v roce 2022 vrátil na domovský Matfyz.
V knize nabídne pohled na programování a programovací jazyky z širší perspektivy. „V historii programování byly vždy pokusy vydat se trošku jiným směrem. V 70. letech minulého století vzniklo to, čemu se dnes říká objektově orientované programování, což je dnes asi nejběžnější metodologie s jakou se dělají velké softwary. Tehdejší výzkumníky z firmy Xerox však primárně zajímalo, jak udělat počítače tak, aby s tím mohl kdokoliv interagovat, aby díky nim mohly děti zpracovávat, co je zrovna zajímá. Měli tehdy spíš takovou humanistickou představu, že každý člověk po základní škole bude umět použít počítač k zpracování nějakých informací. To dnes vidíme jako poněkud naivní přístup. Studie tvrdí, že musíme lidi během vzdělávání nutit projít si řadou „nudných“ avšak podstatných věcí, aby se toho naučili víc.“
Nechme to ženám... Počkat, ona je to docela prestižní záležitost
Zajímavostí je, že prvními programátory byly převážně ženy.
„Ve čtyřicátých letech si matematici, což byly typicky na univerzitách muži, mysleli, že programování je jen triviální záležitost, jak přepsat jejich výpočty do počítače, a tak to nechávali dělat sekretářky. Pak se z toho ovšem postupně začala stávat prestižní práce, a muži v dominantních pozicích zjistili, že je to důležité a prestižní – tudíž mužská záležitost. Díky tomu se také o programování začalo mluvit jinak, najednou vznikaly pozice s honosnými názvy jako software engineer,“ vypráví Petříček.
Paralelně s tím se vyvíjela stereotypní představa programátora coby asociálního klučiny zavřeného ve sklepě, co si řeší matematické hádanky. „Ne že by to kdysi nebyla zcela pravda, ale dnešní realita je zásadně jiná a programování je dnes především týmová práce. A kvalitní programátor musí mít především dobrou obrazovou představivost. Existují dokonce výzkumy, které potvrdily, že člověk s lepší obrazovou představivostí má lepší předpoklady pro to být programátor. Dokonce když se trénujete v obrazové představivosti, tak vás to posune i jako programátora.“
Proč Facebook nabízí zrovna tyhle posty a tuhle reklamu?
A tím znovu narážíme na to, co Tomáše Petříčka ve výzkumu nejvíc zajímá. „Jakým způsobem umožnit lidem víc se koukat na to, co programy, které používají, dělají, případně je upravit tak, aby fungovaly podle jejich představ. A to je těžké téma z mnoha různých důvodů. Z technického hlediska musíte vymyslet, aby se člověk mohl zeptat programů, jak vlastně fungují a proč vám říkají, co vám říkají,“ říká Petříček a uvádí jako příklad sociální sítě. „Zajímá mě způsob dát lidem možnost zeptat se proč jim například Facebook zobrazuje určité posty nebo reklamu.“
I do programování už dnes zasahuje umělá inteligence, nicméně Petříček nemá obavy, že by je časem připravila o práci. „Nahradit programátory je lákavá věc pro některé výrobce softwaru, protože myslí, že by to pak zvládali levněji. Pro mě jako člověka, co se snaží přemýšlet nad tím, jak by programování mohlo v ideálním světě fungovat lépe, je AI zajímavá spíš jako nástroj, který by mohl programátorům i uživatelům část práce usnadnit nebo nabídnout nové možnosti. Hodně takových strukturálně jednodušších projektů už dnes můžete programovat tak, že budete psát požadavky pro AI a donutíte ji, aby vám program vyrobila. Uvidíme, kam se to bude vyvíjet dál.“
Ohledně budoucnosti programování má Petříček vlastní představu, nebo spíše přání. „Zajímavou otázkou pro mě je jak více propojit to, co programátor píše, když programuje, a co se skutečně děje, když systém běží. V současnosti jsou tyhle dvě věci strašně daleko od sebe, a to je podle mého názoru jedna z věcí, která programování dělá těžké až nepřístupné,“ myslí si. Klíčové podle něj je dívat se na celou problematiku programování z jiného úhlu.
„Dominující pohled je, že programování je psaní nějakého textu, kódu. A když se na to díváte takto, tak budete mít nástroje, které vám usnadní psaní kódu, a budou se na kód dívat a analyzovat, jestli jsou v něm chyby. Ale když se na programování budete dívat jako na nějakou interakci se systémem, který běží, něco dělá, a vy do toho nějakým způsobem zasahujete a měníte to, tak otázky, které si budete klást, jsou jiného typu: jak můžu změnit to chování, aby to dělalo to, co chci? Nebo: když to nějakým způsobem donutím, aby to dělalo to, co jsem chtěl, tak, jak to poté zreplikovat? A změna toho pohledu od psaní k nějaké interaktivitě je něco, co může vyřešit problémy, které jsou důležitější.“
A změnilo se vůbec nějak programování za poslední roky?
„Samozřejmě díky novým technologiím se mění nástroje k programování, ale základní koncepty se asi úplně nemění. Co je zajímavá změna je, že většina programovacích nástrojů kombinuje větší množství různých přístupů. Stále zůstává základní princip, ale navíc je přidáno velké množství myšlenek, které vznikly jinde. Dřív vám jako programátorovi stačilo naučit se jeden přístup a když jste přešel do jiné firmy, naučil se jiný, nicméně to mělo nějaké jasnější vymezení. Nyní mi připadá, že jsme se dostali k tomu, že potřebujete pochopit od všeho trochu. A tady na Matfyzu jsme to vždy považovali za dobrou myšlenku, takže tady se studenti s různými způsoby přemýšlení potkají,“ pochvaluje si Petříček svou alma mater, na kterou nezřídka jezdí na kole.
„Během deseti let v Anglii jsme s rodinou často využívali letecké spojení mezi Prahou a tak je moje ekologická stopa už asi nenapravitelná, přesto se snažím využívat ekologičtější cestování,“ vysvětluje Tomáš Petříček.
„Na konference po Evropě se dá na hodně míst dostat vlakem a pohodlně. V létě jsme i s dětmi vyrazili dokonce spacím vlakem až do Rumunska a moc jsme si to užili. Ostatně - většinu mé knihy Cultures of Programming jsem napsal ve vlaku.“
Mgr. Tomáš Petříček, Ph. D. |
Po absolvování studia na Matematicko-fyzikální fakultě UK dokončil doktorát na University of Cambridge (2011-2017) a zároveň působil jako postdok na Microsoft Research Cambridge. Působil také na Alan Turing Institute (2016-2020) a čtyři roky vyučoval na University of Kent (2018-2022), než se vrátil zpět na Matfyz. Nyní působí na Katedře distribuovaných a spolehlivých systémů MFF UK. Letos mu v nakladatelství Cambridge University Press vyjde kniha “Cultures of Programming”. |