× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

Rozhovor s Bjarne Stroustrupem

[ http://programujte.com/profil/20356-peter-rusinak/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/75-martin-zak/ ]Google [ :?rel=author ]       22. 3. 2006       22 478×

Bjarne Stroustrup je tvůrce programovacího jazyka C++, 1. ledna 1998 poskytl rozhovor pro počítačový časopis IEEE. Redaktoři přirozeně předpokládali, že to bude retrospektivní průřez sedmi lety objektově orientovaného programování za použití programovacího jazyka, který vytvořil. Rozhovorem redaktor získal víc, než od něj očekával a zároveň se vydavatel rozhodl zatajit obsah tohoto rozhovoru „pro dobro průmyslu“, ale jak už to chodí, něco přece uniklo. Zde je kompletní přepis toho, co tenkrát bylo řečeno, v nezkrácené podobě, takže to není tak uhlazený rozhovor, jak bylo původně v plánu. Bude se vám líbit…

Bjarne Stroustrup

(* 11. června 1950, Aarhus, Dánsko) je dánský programátor a informatik, profesor na Texas A&M University a tvůrce programovacího jazyka C++.


Jedná se o fiktivní rozhovor - computer science.

Redaktor: Už je to několik let, co jsi změnil svět navrhování softwaru. Jak to teď zpětně vypadá?

Stroustrup: Skutečně, než jsi přišel, tak jsem o té době přemýšlel. Pamatuješ? Všichni psali v Céčku a problém byl, že v tom byli zatraceně dobří. Na univerzitách to taky dobře vyučovali. Produkovali kompetentní – zdůrazňuji slovo „kompetentní“ – absolventy v úctyhodné frekvenci. To je to, co zapříčinilo problém.

Redaktor: Problém?

Stroustrup: Jo, problém. Pamatuješ, když každý psal v COBOLu?

Redaktor: Samozřejmě. Já v něm taky psal.

Stroustrup: Zpočátku byli ti chlapíci jako polobozi. Měli vysoké platy a všichni se k nim chovali jako ke královské rodině.

Redaktor: To byly časy…

Stroustrup: Jo, takže co se stalo? IBM se to nelíbilo, a tak investovali miliony do vyškolení programátorů.

Redaktor: Proto jsem toho taky nechal. Platy během roku klesly na takovou míru, že novinařina začala být lépe placená.

Stroustrup: Přesně. A to samé se taky stalo s programátory, co psali v Céčku.

Redaktor: Jasně, ale čím to je?

Stroustrup: No, jednou jsem seděl ve své kanceláři a přemýšlel o tom, jak trochu změnit tento stav. Říkal jsem si, co by se tak stalo, kdyby existoval jazyk tak komplikovaný a obtížný na naučení, že už by se nikomu nepodařilo zaplavit trh programátory. Měl jsem už nějaké nápady z X10, no víš – X Windows. To byla taková čubka grafických systémů, která běžela jenom na těch Sunech 3/60. Měla všechny komponenty, které jsem potřeboval. Opravdu směšně spletitou syntaxi, nesrozumitelné funkce, a pseudo-00 strukturu. Ani dnes nikdo nepíše v čistém kódu X-Windows. Motiv je jediný důvod, pokud si chceš zachovat duševní zdraví.

Redaktor: Děláš si blázny?

Stroustrup: Ani trochu. Ve skutečnosti tady byl ještě jeden problém. UNIX byl napsán v Céčku, což znamenalo, že kdokoliv, kdo píše v Céčku by se velmi snadno mohl stát systémovým programátorem. Pamatuješ, kolik vydělávali systémový programátoři mainframe?

Redaktor: To si piš, že jo. To jsem taky dělal.

Stroustrup: Dobrá, takže tento nový jazyk se měl od UNIXu úplně oddělit tím, že skryl všechna systémová volání, která k sobě dva tak pěkně drží pohromadě. To umožnilo slušné živobytí i chlapcům, co umí jenom DOS.

Redaktor: To snad ne…

Stroustrup: No jo, je to už dost dávno a věřím, že hodně lidí si ujasnilo, že C++ je ztráta času, ale musím říct, že jim to trvalo o dost déle, než jsem si myslel.

Redaktor: Takže jak přesně jsi to udělal?

Stroustrup: Měl to být vtip. Nikdy jsem si nemyslel, že lidi vezmou tu knížku vážně. Každý jen s půlkou mozku vidí, že objektově orientované programování není intuitivní, je nelogické a neefektivní.

Redaktor: Cože?

Stroustrup: A pokud jde o opakovanou použitelnost kódu, už jsi někdy slyšel o firmě, která by znovu použila svůj kód?

Redaktor: No, nikdy, ale…

Stroustrup: No vidíš. Připomenu ti, zpočátku jich to pár zkusilo. Byl to myslím Oregon – Mentor Graphic. Opravdu si naběhli, když se v 90. a 91. roku snažili všechno přepsat do C++. Bylo mi jich opravdu líto, ale myslel jsem si, že se lidi poučí z jejich chyb.

Redaktor: Samozřejmě nepoučili?

Stroustrup: Ani trochu. Problém byl, že většina firem ututlala svoje velké problémy. Vysvětlování akcionářům, proč mají 30miliónové ztráty, mohlo být dost obtížné. Nechme jim jejich povinnosti. Nakonec se jim to podařilo.

Redaktor: Podařilo? Tak vidíš. To potvrzuje, že nula od nuly pojde.

Stroustrup: Téměř. Spustitelné soubory byly tak velké, že se na HP stanicích se 128 MB RAM spouštěly 5 minut. A pak běžely jak melasa. Myslel jsem si, že to bude hlavní kámen úrazu a přišel bych na to během týdne, ale nikomu to nevadilo. Sun a HP byli šťastni, že prodávají ohromně výkonné balíčky s obrovskými prostředky pouze na chod triviálních programů. Když jsem měl svůj první C++ překladač, v ATaT jsem přeložil Hello World a nemohl uvěřit, že velikost EXE souboru byla 2,1 MB.

Redaktor: Cože? No od té doby překladače udělaly kus cesty.

Stroustrup: Opravdu? Zkus to na nejnovějším g++. Rozdíl bude sotva půl mega. Taky je tady několik současných příkladů z celého světa. British Telecom měl na svých bedrech ohromnou pohromu, ale naštěstí dokázal celou věc zahodit a začít znovu. Měli víc štěstí než Australský Telecom. Teď jsem slyšel, že Siemens si staví dinosaura a dělám si větší a větší starosti, protože hardware je čím dál větší. aby obsáhnul EXE soubory. Není násobný uděl potěšením?

Redaktor: Ano, ale C++ je v podstatě pojem.

Stroustrup: Ty tomu opravdu věříš, že jo? Už sis někdy sednul a dělal na C++ projektu? Co se stane: nejdřív vložím dostatečné množství PITFALLS, abych zpočátku zajistil chod jenom těch nejtriviálnějších projektů. Operátory jsou přetížené. Na konci projektu to je téměř ve všech modulech, obvykle proto, že chlapci cítí, že to tak mají dělat, jak je to učili v kurzu. Stejný operátor pak v každém modulu znamená něco úplně jiného. Zkus potom volat tento balík dohromady, když máš dohromady něco kolem sta modulů. Pokud jde o skrytá data, bože, někdy nemůžu zadržet smích, když slyším o problémech firem, které se snaží, aby jejich moduly spolu komunikovaly. Myslím, že slovo součinný bylo vymyšleno, aby vrazilo nůž do zad manažera projektu.

Redaktor: Musím říct, že z toho začínám být docela vyděšený. Říkáš, žes to udělal, aby se zvýšily platy programátorům? To je neslušné.

Stroustrup: Ne tak docela. Každý má volbu. Nepředpokládal jsem, že se to tak vymkne z rukou. Nicméně jsem v podstatě uspěl. C++ pomalu umírá, ale programátoři mají stále vysoké platy, zvlášť ti ubozí ďáblové, co musí udržovat všechno to okolo. Uvědomuješ si, že je nemožné pečovat o velký C++ softwarový modul bez toho, aniž bys ho napsal?

Redaktor: Jak to?

Stroustrup: Jsi mimo, že? Pamatuješ typedef?

Redaktor: Samozřejmě.

Stroustrup: Vzpomeň si, jak dlouho trvalo seskupení hlavičky souboru a nalezení… A teď si představ, jak dlouho bude trvat nalezení všech implicitních typedefs ve všech Classech velkého projektu.

Redaktor: Tak proč si myslíš, že jsi uspěl?

Stroustrup: Univerzity nevyučovaly Céčko tak dlouho, začíná být nedostatek slušných programátorů. Zvláště těch, kteří vědí něco o programování systému UNIX. Kolik chlapíků by vědělo, co dělat s příkazem malloc, když celá ta léta používají new a nikdy se nezajímali o kontrolu zpětného hlášení. V podstatě většina programátorů v C++ zahazuje zpětná hlášení. Co se vůbec stalo s dobrou ol' '-1'? Alespoň jsi věděl, že máš chybu, aniž by ses musel patlat ve všech těch věcech jako throw, catch a try.

Redaktor: Avšak, nepochybně, dědičnost ušetří hodně času.

Stroustrup: Opravdu? Všiml sis někdy rozdílu mezi projektem v Céčku a C++? Plánovací fáze C++ je třikrát tak velká. Právě pro kontrolu toho, že co má být děděno, je a co nemá být, není. Nakonec je to stejně špatně. Už jsi někdo někdy slyšel o slabých místech v paměti programů v Céčku? Dnes je hledání těchto problémů hlavní činností. Většina firem to vzdá a vypustí produkt i když ví, že je děravý jak řešeto, jednoduše proto, aby se vyhnuli nákladům na jejich dohledání.

Redaktor: Existují nástroje…

Stroustrup: Většina z nich je napsaná v C++.

Redaktor: Uvědomuješ si, že když tohle otiskneme, tak tě pravděpodobně zlynčují?

Stroustrup: To asi ne. Jak jsem řekl, C++ je už za svým zenitem, a žádná firma by se při zdravém rozumu nepustila do C++ projektu bez řádného testování. To by je mělo přesvědčit, že tohle je cesta do záhuby. Pokud ne, budou mít, co chtěli. Pokoušel jsem se přesvědčit Denise Ritche, aby přepsal Unix do C++.

Redaktor: Můj bože! Co říkal?

Stroustrup: No, naštěstí měl smysl pro humor. Myslím, že oba – on i Brian – hned zpočátku pochopili, co jsem dělal, ale nikdy to nedali znát. Řekl, že by mi pomohl napsat C++ verzi DOSu, pokud budu mít zájem.

Redaktor: Měl jsi ho?

Stroustrup: V podstatě jsem napsal DOS v C++. Dám ti demo, až budeme hotovi. Běží mi v počítačovém sále na Spark 20. Letí jak raketa na čtyrech CPUčkách a na disku zabírá jenom 70 mega.

Redaktor: Je to jako na PC?

Stroustrup: Teď si děláš blázny. Nikdy jsi neviděl Windows 95? Považuji to za svůj největší úspěch. Málem jsem z toho vyrostl, než jsem to dokončil.

Redaktor: Ta myšlenka na Unix++ mě opravdu zaujala. Že tam někde venku je chlapík, který to zkusí.

Stroustrup: Ne potom, co si přečte tento rozhovor.

Redaktor: Je mi líto, ale nemyslím, že něco z toho budeme moci publikovat.

Stroustrup: Ale je to příběh století. Jde mi jenom o to, aby si kamarádi programátoři pamatovali, co jsem pro ně udělal. Víš, kolik dnes může brát programátor v C++?

Redaktor: Co vím, tak opravdu dobrý chlápek v C++ může stát 80 až 90 dolarů za hodinu.

Stroustrup: Vidíš! A vsadím se, že je opravdu má. Sledování všech těch gotchas vložených do C++ není snadný úkol. A jak už jsem říkal, každý C++ programátor se cítí být vázán nějakou tajemnou přísahou, aby použil každý zatracený element jazyka v každém projektu. Opravdu mě to někdy až otravuje, i když to byl původně záměr. I po těch letech mám ten jazyk téměř rád.

Redaktor: Myslíš tím, že předtím jsi ho neměl?

Stroustrup: Nenáviděl. Vypadá to hrozně, nemyslíš? Ale když začnou za knížku chodit poplatky za autorská práva, přijdeš na to.

Redaktor: Moment. A co reference? Musím podotknout, že na Céčku jsi vylepšil pointéry.

Stroustrup: Pořád jsem o tom přemýšlel. Původně jsem si myslel, že ano. Pak jsem to jednoho dne probíral s chlápkem, který by napsal C++ úplně od začátku. Řekl, že si nikdy nepamatoval, jestli má proměnné referencované, nebo odreferencované. Takže vždy použil pointéry. Malá hvězdička ho vždy upozornila.

Redaktor: V tuhle chvíli vždy říkávám „Děkuji velmi pěkně“, ale těžko to tady bude to pravé

Stroustrup: Slib mi, že to otisknete. Dnes už mám lepší svědomí.

Redaktor: Dám ti vědět. Ale myslím, že vím, co mi vydavatel řekne.

Stroustrup: Stejně, kdo by tomu věřil… Můžeš mi přesto poslat kopii nahraného pásku?

Redaktor: To můžu.



homepage Bjarne Stroustrupa [ http://public.research.att.com/~bs/ ]

Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006030305-rozhovor-s-bjarne-stroustrupem/ ].