Portál AbcLinuxu, 27. dubna 2024 00:54

Peter Roizen - 2 (Programmers at Work)

5. 9. 2008 | Tomáš Znamenáček
Články - Peter Roizen - 2 (Programmers at Work)  

V dokončení rozhovoru mluví Peter Roizen o tom, jak dospěl k rozhodnutí přestat se nechat zaměstnávat a založit vlastní firmu. „Kdyby mi někdo nabídl poloviční plat za práci, kterou dělat chci, a dvojnásobný plat za práci podle cizího zadání, vybral bych si menší peníze a svobodu. Když jsem v práci spokojený, nepotřebuji řídit Porsche.“

Programmers at Work je kniha 19 rozhovorů s významnými programátory, kteří svou prací a myšlenkami tvarovali podobu dnešních operačních systémů a mnoha dalších aplikací. Ačkoliv vyšla již v roce 1986, rozhovory jsou z velké míry nadčasové a stále velmi zajímavé. Susan Lammers se po více než 20 letech od prvního vydání knihy rozhodla zveřejnit rozhovory na Internetu a dala AbcLinuxu.cz souhlas k jejich překladu a vydání. Kvůli jejich délce bude většina rozhovorů rozdělena na dva díly. Každý rozhovor doplníme o krátký dodatek, ve kterém budou shrnuty další osudy jednotlivých programátorů.


Peter Roizen, Programmers at Work

Začátek rozhovoru: Peter Roizen (Programmers at Work).

Bál jste se během toho roku konkurence? Že vás někdo předběhne?

Asi půl roku před tím, než jsme T/Maker dokončili, vyšel na trh VisiCalc. Jeho název mě vážně vyděsil, protože to znělo jako úplně stejný produkt. Nechtěl jsem se na něj ani podívat – tak moc jsem si byl jistý, že bude stejný. Mám pocit, že jsem ho poprvé vyzkoušel až po dokončení T/Makeru. A tehdy jsem zjistil, že je úplně jiný. VisiCalc sice vydělal milióny, a T/Maker ne, ale to nutně nevypovídá o kvalitě produktu.

Dokázal byste vysvětlit, v čem se T/Maker liší od VisiCalcu?

T/Maker má úplně jiný přístup k věci. Náš program používá prázdnou obrazovku, zatímco VisiCalc obrazovku rozdělí na buňky, do kterých vkládáte čísla a rovnice. T/Maker je mnohem volnější, jeho výpočetní část je v pozadí. Nemáte pocit, že používáte nějaký program; je to jako psát na tabuli.

Na T/Makeru je také zajímavé, že můžete myšlenky zapisovat svisle namísto vodorovně. Neříkal bych tomu zrovna revoluce, ale v jiném programu jsem to nikdy neviděl.

Jaká byla vaše kritéria pro návrh T/Makeru?

Za prvé jsem kladl důraz na to, aby se jednoduché problémy daly řešit jednoduše. Když chcete sečíst tři řádky, napíšete na začátek každé řádky plus, pak zadáte čísla a nakonec pod ně přidáte rovnítko, které označí součet. Jednodušší už to být nemůže. Nechtěl jsem přijít na nějaké obecné akademické řešení, které by nabízelo tolik možností, že by se v něm uživatelé ztratili. Vybral jsem si řešení pro lidi, kteří většinu času sčítají sloupečky čísel. V T/Makeru si uživatel může udělat hezké výkazy, které se budou chovat přesně podle jeho představ. A pak si výkaz může vytisknout a bude vypadat přesně jako na obrazovce, protože díky syntaxi T/Makeru může být text kdekoliv na obrazovce. Tím se T/Maker od většiny systémů liší.

Další podstatná vlastnost T/Makeru souvisí s mým stylem návrhu. Když se mám rozhodnout mezi konkrétní a obecnou variantou nějaké užitečné funkce, většinou se rozhodnu pro tu obecnou (pokud zbytečně nekomplikuje jednoduché případy). Jiné programy bývají striktnější. Předpokládají, že uživatel bude chtít dvouřádkový nadpis a čísla stránek na spodním okraji stránky. V T/Makeru může být nadpis libovolně dlouhý a číslo stránky může být kdekoliv. Pokud někdo chtěl jen dvouřádkový nadpis, bude to mít o něco složitější, ale v delším horizontu je to pro uživatele výhodnější. Napsat něco jako T/Maker vyžaduje obrovský počet rozhodnutí. Věřím tomu, že při psaní T/Makeru jsem se většinou rozhodoval správně.

Jak se vám na T/Makeru pracovalo?

Bavilo mě to. Kdykoliv jsem program přeložil a rozběhla se nějaká nová funkce, byl jsem nadšený. Bylo vzrušující ho někomu ukázat a dozvědět se, že je podle něj zralý na trh. A ještě větší vzrušení samozřejmě bylo, když začaly chodit peníze a já jsem doopravdy začal vydělávat na něčem, co mě tak uspokojovalo.

Na jaký největší problém jste během vývoje T/Makeru narazil?

Jeden počítač byl málo – nevyhnutelně se rozbil pokaždé, když jsem měl zrovna někomu ukazovat novou funkci programu. A musel jsem napsat obrazovkový editor, protože T/Maker používá vizuální syntax. Něco takového jsem psal poprvé, docela jsem se nadřel.

V jakém jazyce jste program napsal?

První verze byla v CBasicu, protože tehdy nic jiného nebylo. Zpětně jsem s ním docela spokojený. Nejenže program fungoval, ale byl i docela rychlý. Když jsem se konečně dostal k C (konkrétně BSD C), program se desetinásobně zrychlil. Dodneška jsem hrdý na to, že se mi v CBasicu podařilo dát dohromady rozumně rychlý obrazovkový editor.

Narazil jste díky vývoji tabulkového procesoru na nějakou nečekanou zkušenost?

Kontakt s uživateli mě fantasticky bavil. Občas nám někdo napíše dopis a některé z nich jsou vážně dojemné. Jednou jsme věnovali kopii T/Makeru do věznice a napsali nám odtud, jak moc je program baví a jak oceňují, že se někdo zajímá o vězně. Pán z Jižní Kalifornie nám poslal krabici avokád, protože T/Maker používá při vedení ranče. Je to jako zapadnout do rozvětvené rodiny. Nikdy jste se sice nesetkali, ale párkrát se slyšíte po telefonu nebo si napíšete a už jste součástí rodiny. To je velice příjemný průvodní jev našeho podnikání.

Změnil vám T/Maker život?

Dost, zvlášť pokud jde o můj pohled na zaměstnání a stálý plat. Když jsem pracoval pro někoho cizího, vždycky jsem chtěl alespoň o pět procent vyšší plat, než jsem měl posledně, a nechtěl jsem riskovat. Pořád jsem přemýšlel o platu a čekal jsem na další měsíc, protože jsem si chtěl koupit třeba novou televizi nebo magnetofon. Ve svých prvních zaměstnáních jsem se často divil, za co mi platí takové peníze, když nijak nepřispívám ke zlepšení světa. Jen jsem seděl a pil s ostatními kafe. Psal jsem studie proveditelnosi projektů, které se nikdy neimplementovaly, a programy, které nikdo nepoužíval. Byl jsem jediný, kdo měl užitek z mé práce, a tím užitkem byl jen můj plat. Po nějaké době jsem si začal připadat bezcenný, protože jsem nedělal nic užitečného.

Teď mám pocit, že něco užitečného dělám. Moje práce mě uspokojuje, takže nad jejím ohodnocením moc nepřemýšlím. Kdyby mi někdo nabídl poloviční plat za práci, kterou dělat chci, a dvojnásobný plat za práci podle cizího zadání, vybral bych si menší peníze a svobodu. Když jsem v práci spokojený, nepotřebuji řídit Porsche. Není to důležitá část mého života. Důležitá část mého života je pracovat na tom, co se mi líbí.

Na čem děláte teď?

Na další verzi T/Makeru. Už si s ním hraji pět let, takže vím o řadě věcí, které by se daly zlepšit. Vidím problémy, které jsem během psaní programu neviděl. Dokud si něco nevyzkoušíte a doopravdy si s tím nějakou dobu nehrajete, některé chyby nevidíte. Pro samé stromy si nevšimnete lesa. V T/Makeru jsou stromy, ze kterých by se dal udělat lepší les.

Současná verze T/Makeru nejde moc na ruku lidem, kteří nečtou dokumentaci nebo neznají počítačový žargon. To je jedna z věcí, na které jsem nebyl moc citlivý, protože počítače používám každý den od rána do večera. Když je k dispozici nějaká klávesová zkratka, naučím se ji. Můžu používání programu zjednodušit lidem, kteří ho nepoužívají tak často, řekněme o víkendech. Od neděle do neděle vám ovládání programu v hlavě nezůstane.

Uvažoval jste někdy o tom, že byste se pustil do něčeho úplně jiného, než je T/Maker?

Nevadilo by mi to. Ale už jsem do T/Makeru investoval tolik času, úsilí a kódu, že mi je zatěžko odejít k něčemu jinému. Každý nový projekt spolkne ze začátku hodně času. A do T/Makeru se dá vždycky dopsat nějaký nový modul. Navíc mi teď pomáhá programátor, který se v počítači vyzná lépe než já, takže se nám otevírají nové možnosti.

Považujete programování za umění, vědu, nebo řemeslo?

Umění, rozhodně. Myslím si, že cokoliv děláte dobře může být umění, protože každá práce se dá dělat s určitou mírou citu nebo uměleckého nadání. Co se týká mojí práce, záleží mi nejen na významu kódu, ale i na jeho vzhledu. Často se ke kódu vracím jen proto, abych ho lépe přeformátoval.

Dá se podle vás programování srovnat s jiným uměním, například hudební sklabou, malbou nebo psaním?

Těžko se mi srovnává, protože z těch věcí znám doopravdy dobře jen jednu. Nemám tušení, co třeba skladatel hledá, když se snaží komponovat. Umění znamená mít zájem o to, co děláte, a snažit se odvést co nejlepší práci. Je jedno, jestli se chystám programovat, nebo lepit tapety.

Považujete informatiku za vědu?

Nevěřím moc tomu, že by studium informatiky dělalo dobré programátory. Dá rozum, že se musíte naučit napsat třeba hešovací tabulku a několik dalších algoritmů. Ale možná je lepší, když si na některé věci přijdete sami, jako jsem na ně musel sám přijít já. Jsem samouk, protože dřív nebyly žádné vhodné učebnice ani přednášky. Myslím si, že většina problémů spadá do kategorie, na kterou v knížkách ani přednáškách nenarazíte. Nemůžete nalistovat řešením první části problému na straně tři a řešení druhé části na straně šest a dát obojí dohromady. Takové řešení bývá k ničemu.

Největší a nejtěžší část každého problému je rozhodnout, kterým směrem se pustíte. Když si s něčím hraji dostatečně dlouhou dobu, přijdu na vhodný plán a samotné programování už potom zas tak složité není. Když se v přednášce z informatiky naučíte deset různých třídicích algoritmů, s návrhem řešení vám to moc nepomůže.

To bychom měli vaši radu pro budoucí generace programátorů. Měl jste vy nějaký konkrétní programátorský vzor?

Ne, konkrétního člověka ne. Líbila se mi kniha Zen a Umění motocyklových správek. Z takových tří čtvrtin jsem ji nechápal, ale těch několik zbývajících řádek na mě mělo velký vliv. Právě díky téhle knize jsem začal víc přemýšlet o kvalitě a o tom, jak věci dělat co nejlépe, i když se zdá, že o to zrovna nikdo nestojí. Autor v textu popisuje jednoho motorkáře, který vzal svou motorku na opravu do servisu. Mechanik bezmyšlenkovitě sáhl po nějakém kusu nářadí – tom špatném – a okamžitě strhl šroub. Na takové lidi vážně občas natrefíte, berou práci jako nějakou bezmyšlenkovitou činnost. Hodně mě ovlivnilo, jak autor popisoval svou radost z dobře odvedené práce.

Stýkáte se hodně s ostatními programátory?

Moc ne. Radši se věnuji svým vlastním nápadům. Nemám představu, jakým způsobem pracují ostatní programátoři, ale řekl bych, že moje nápady je příliš nezajímají. Potvrdil jsem si to, když jsem se snažil ostatním prodat svůj nápad na T/Maker.

Jedna z velkých výhod programování je, že si potřebné vybavení můžete koupit a práci pak udělat sami. Nepotřebujete k tomu nikoho dalšího, máte velkou nezávislost. Ve firmě jsem své návštěvy v kanceláři omezil asi na jednu týdně. Kancelářské povinnosti, třeba plánování marketingové strategie nebo sezení na poradách, mě nebaví. Neuspokojují mě. Radši pracuji o samotě doma.

Co podle vás dělá dobrého programátora?

Dobrý programátor je dobrý pracant, který má o svou práci zájem. Chce udělat tak dobrý produkt, jak jen to půjde – be all you can be, jak říkají v těch reklamách na armádu. Bez ohledu na to, jak složité to bude. Potřebuje dobrou paměť na detaily. Já můžu vzít kus kódu, který jsem napsal před několika lety, a většinou mi rychle dojde, co jsem se tehdy snažil udělat.

Když programátor napíše výborný program, má zaručený úspěch?

Dřív jsem si myslel, že ano. Dneska nevím. Záleží na tom, jak definujete úspěch. Pro mě je úspěch dělat přes den na tom, co mě baví, a zaplatit na konci měsíce všechny složenky. Takového úspěchu můžete dosáhnout celkem snadno, v čemkoliv. Ale zároveň vím, že nemůžete nahradit úspěšný produkt (například Lotus), i kdybyste nakrásně napsali desetkrát lepší. A nejen to, dobré nápady jsou celkem vzácnost. Není to tak, že bych si sedl a řekl si: „Dneska přijdu na něco dobrého.“ Stejně tak nemůžete čekat, že dáte dohromady deset lidí a přijdete na padesát nápadů. Za celý svůj dosavadní život jsem měl dejme tomu tři nebo čtyři nápady dost dobré na to, aby z nich vznikl úspěšný produkt. Jedním z nich byl T/Maker a na ostatní si nepamatuji, protože jsem je nechal být.

Jak bude podle vás vypadat počítačový obor v příštích několika letech?

Nevím. Ptáte se toho špatného, protože já vůbec nesleduji trendy. Když už si otevřu a prolistuji počítačový časopis, mám z toho deprese. Existuje taková spousta pěkných produktů! Vidím ty napulírované obrazovky na křídovém papíře a nevyhnutelně pokaždé dospěji k názoru, že náš program musí být horší. Jedno z možných řešení, jak se těmhle depresím vyhnout, je nečíst počítačové časopisy. Tím pádem nemám moc přehled o tom, co dělají ostatní. Ale dokud máme zákazníky, je mi to jedno. My neustále zlepšujeme T/Maker, oni zase kupují nové verze. Zvlášť dobrý spoleh je na několik našich OEM zákazníků, a když jim čas od času dáme novou a lepší verzi, řekl bych, že s námi zůstanou.

Myslíte si, že budou počítače časem inteligentní?

Počítač je velice složitý, rychlý a většinou také velice hloupý stroj. Fantasticky se hodí na nudné úkoly, které zaberou hodně času. Stroj je udělá, protože stroj se nenudí. Nevstane ráno s pocitem, že už má sčítání čísel po krk. Prostě tu práci udělá. Je to nástroj, stejně jako třeba šroubovák. Když ho umíte použít, ušetříte si spoustu fádní dřiny.

Pro řadu úkolů se dá napsat algoritmus, který povede k lepším výsledkům, než jaké byste dostali intuitivně. Například by počítač mohl ve srovnání s lékařem lépe a rychleji diagnostikovat jednoduché nemoci, třeba angínu nebo některé zlomeniny. Počítače září v aplikacích, které vyžadují rychlost. V lékařských aplikacích by počítač vypadal chytře, protože je hodně rychlý a nedělá logické chyby. Ale jakmile řešení vyžaduje nějakou obecnější úvahu, například pokud jde o diagnózu nějaké složitější nebo vzácnější nemoci, třeba rakoviny nebo virových infekcí, u kterých neznáme přesně všechny okolnosti vzniku, tak v takových případech je podle mě nepravděpodobné, že by se kdy počítače ujaly.

Zajímá vás úloha počítačů ve společnosti?

Moc ne. Do té míry se o počítačový průmysl ani o svět nezajímám. Chtěl bych, aby byl na světě klid, a chtěl bych k tomu přispět. Ale pokud jde o mou práci, je mi jedno, jestli pro mé programy existuje nějaká dobrá marketingová strategie, jestli jde celý počítačový průmysl k zemi, nebo jestli je zrovna dobrý čas na nějaký projekt. Tyhle věci jdou mimo mě. Mohl bych strávit hromadu času přemýšlením nad tím, jestli bych zrovna tohle a tohle měl dělat, ale pak by mi nezbyl žádný čas na samotnou práci. Je to jako s daněmi. Já daně platím rád, protože je to příspěvek společnosti, a kdyby nebylo společnosti, nic bych nevydělával. Znám lidi, kteří kdyby místo přepočítávání daní pracovali, vydělali by spoustu peněz.

© Susan Lammers 1986–2008, přeloženo s laskavým dovolením autorky.

Různých verzí T/Makeru se od jeho uvedení na trh prodalo asi čtvrt miliónu licencí a Peterovi Roizenovi vydržel jeho poklidný domácí vývoj softwaru dodnes. Pracoval například na zvláštním tabulkovém procesoru pro Windows, burzovním informačním systému na prodej informací přes BBS, softwaru pro internetovou tiskovou firmu nebo na stolní hře podobné Scrabblu. Pracuje v Javě a C++ ve Windows, podle svých slov dává přednost „spíše zajímavým projektům než pozicím“.

Seriál Programmers at Work (dílů: 39)

První díl: Charles Simonyi (Programmers at Work), poslední díl: Michael Hawley - 2 (Programmers at Work).
Předchozí díl: Peter Roizen (Programmers at Work)
Následující díl: Robert Carr (Programmers at Work)

Související články

Alan Cox odpovídá
Rozhovor: Richard Stallman
Mark Shuttleworth odpovídá
Rich Green, viceprezident Sunu o open source
Opera: Jon S. von Tetzchner
Interview: Matthew Szulik, Red Hat

Odkazy a zdroje

Peter Roizen

Další články z této rubriky

Michal Švec ze SUSE na téma Virtualizace a SLES
Rozhovor s Radkem Špimrem, IBM na téma nových serverů IBM Power Systems LC
Zpověď startupu na vlně IBM
ČVUT jako MIT? Lendl, Navrátilová, Jágr, Sáblíková, nebo absolvent FELu?
Práce vývojáře je dobrodružství

Diskuse k tomuto článku

5.9.2008 08:54 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: Peter Roizen - 2 (Programmers at Work)
Odpovědět | Sbalit | Link | Blokovat | Admin
Díky za skvělé překlady!

"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
7.9.2008 23:18 Petr F
Rozbalit Rozbalit vše Re: Peter Roizen - 2 (Programmers at Work)
Odpovědět | Sbalit | Link | Blokovat | Admin
Řekl bych, že tenhle programátor je úplně jiný, než ti předchozí. Pokud nelže sám sobě, tak je z nich asi nejšťastnější. Ale opravdu by mě zajímalo jak se na něj dívají lidé, kteří s ním spolupracují.
Zatím bez patičky.
12.9.2008 10:28 Pumpkin Man
Rozbalit Rozbalit vše Re: Peter Roizen - 2 (Programmers at Work)
Odpovědět | Sbalit | Link | Blokovat | Admin
Všem nám je jasné že takový člověk si pravděpodobně v této době žádnou partnerku nenajde. A pokud již nějakou má, tak si jí našel v době kdy ženy upřednostňovaly i jiné hodnoty než především peníze. Tihle lidé jsou šťastní sami se sebou.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.