Otázky pro Donalda Knutha

Všechny otázky zodpovězeny – tak nazval jeden z největších počítačových vědců přednášku, na které se zavázal odpovídat na jakékoliv dotazy. Jelikož mám slabost pro opravdové počítačové vědce, tvůrce TeXu a autory The Art Of Computer Programming, s radostí jsem se vrhl do čtení přepisu přednášky, jejíž jméno slibovalo poodkrýt i něco víc než „jen“ algoritmy...
„Jsem věřící a myslím si, že Bůh zná všechna má tajemství. Proto cítím, že všechny mé myšlenky jsou svým způsobem majetkem veřejnosti.“

Kdo by neznal Donalda Knutha či alespoň nějakou část jeho práce. Vlastně se nemohu rozhodnout, jestli bych ho měl nazývat spíš pravým počítačovým vědcem či pravým hackerem. Oba tituly si plně zaslouží a oba znějí stejně úchvatně.

Hackerskou povahu „člověka s podobou Yody“ (jak kdosi vtipně poznamenal) odhaluje i úryvek z jeho řeči přednesené 5. října 2001 na univerzitě v Mnichově: „Odvrácenou stránkou je, že jsem příliš citlivý k určitým věcem. Nemohu jít do restaurace a něco si objednat, protože hned začnu zkoumat fonty na jídelníčku. Po pěti minutách si teprve uvědomím, že to je také o jídle.“

Zřejmě jste si všimli již staršího data. Bohužel byl přepis této diskuse vědce a studentů, generace odcházející a generace nastupující, publikován až nyní a domnívám se, že mnoho z vás, čtenářů, jej uvítá stejně jako já i s touto časovou prodlevou. Proto vám přináším překlad některých bodů, které mne zaujaly. Nutno však poznamenat, že některé odpovědi jsou kráceny. Originál naleznete i s fotkami anglicky v PDF.

Otázka: Zdá se mi, že je jednodušší opravit knihu než obrovské programy, se kterými se dennodenně setkáváme. Jak můžeme použít teorii k vylepšení software?

Knuth: Je jasné, že opravit chyby v software je těžší než opravit chyby v knihách. Poznatkem, který jsem si odnesl z deseti let strávených prací na projektu TeX, je, že software je obtížný. Je těžší než cokoliv, co jsem kdy dělal. Když jsem pracoval na TeXu, nebyl jsem schopen učit na plný úvazek. I když mám učení rád, musel jsem ho na rok zanechat, protože toho prostě bylo příliš, co jsem musel zároveň nosit v hlavě. Psát knihu je jen o něco málo těžší než psát technický dokument, ale psát software je mnohem více obtížné než psát knihu.

Nabízím odměnu těm, kteří v mých knihách najdou nějakou chybu, a musím říct, že lidem z Německa jsem napsal více šeků než obyvatelům jakékoliv jiné země. Dostávám dopisy z celého světa, ale němečtí čtenáři jsou prostě ti nejlepší hnidopichové, jaké mám! Stejně tak platím i za chyby v TeXu a METAFONTu. Odměna pro TeX se každý rok zdvojnásobovala. Začal jsem u $2,56, potom to bylo $5,12 a tak dále, až nakonec částka dosáhla $327.68 – tehdy jsem ji už přestal zvyšovat. Od roku 1994 nebo 1995 nebyla oznámena jediná chyba, i když se říká, že nedávno někdo nějakou nalezl. Budu se na to muset tak za rok za dva znovu podívat. Mimochodem, všechno dělám v dávkovém módu. Znovu se podívám na možné chyby v TeXu v roce, řekněme, 2003.

Myslím, že dát uživatelům vědět, že vítáte oznámení o chybách, je důležitá technika, která by mohla být využita v softwarovém průmyslu. Microsoft by měl říci: „Pokaždé, když najdete nějakou chybu, dostanete od Billa Gatese šek.“

Donald již 12 let nepoužívá e-mail, tvrdí, že má na práci zajímavější věci. Kdyby mi toto řekl kdokoliv jiný, asi bych se smál, ale z úst Knutha je to něco jiného, takový ten podnět k zamyšlení: „Neudělal bych také lépe, kdybych přestal ztrácet čas s hromadami e-mailů každý den?“

Tím jsem ale trošku odbočil od tématu přednášky. Zajímavou otázkou je: „Jaký je rozdíl mezi matematikou a programováním, když se na ně díváme jako na umění?

Knuth: Umění je Kunst [německé dvouznačné slovo: umělý, umělecký]. Americký snímek Artificial Intelligence (Umělá inteligence) je umělý a zároveň umělecký. Smýšlím o programování jako o něčem krásném, elegantním, o něčem, na co můžete být hrdí. Ani matematika v tomto smyslu nepostrádá eleganci. Obě odvětví, matematika i počítače, jsou od ostatních směrů vědy odlišné, jsou umělé. Máme je plně pod kontrolou. Sami si vytváříme axiomy, a když vyřešíme nějaký problém, dokážeme dokázat, že jsme jej vyřešili. Žádný astronom nebude nikdy vědět, zda jsou jeho teorie o vesmíru správné. Nemůžete letět na Slunce a změřit to.

Otázka: Budeme mít někdy v budoucnu inteligentní stroje? Měli bychom je mít?

Knuth: Vždycky existovaly nafouknuté odhady, jak dlouho to ještě bude trvat, než budeme vyrábět inteligentní stroje. Stále ale nevidím žádné známky toho, že bychom byli schopni zodpovědět hlavní otázku: „Co to je poznávání, co to znamená myslet?“ Neurologové dosahují přesnějších výsledků, než jaké kdy měli, ale pořád jsme ještě tak daleko, že si netroufnu zařadit neurologii mezi nejaktivnější oblasti vědy. Biologie nachází odpovědi na problémy týkající se DNA, kmenových buněk a tak dále, ale co se týče myšlení, stále je před námi ještě mnoho tajemství.

Před rokem či dvěma vzniklo několik provokativních knih, jedna od Hanse Moravce a jedna od Raye Kurzweila. Obě z nich tvrdí, že během dvaceti či třiceti let dosáhnou stroje inteligence vyšší, než je inteligence člověka. Některé lidi to zneklidňuje. Můj názor je, že pokud je to pravda, pomožme jim. Pokud budou chytřejší než my, tak co? Můžeme se od nich učit. Já ale nepozoruji žádné známky toho, že by v tomto oboru mělo dojít k nějakému průlomu.

Otázka: Co si myslíte o softwarových patentech?

Knuth: Jsem proti patentům na věci, které může objevit každý student. V USA bylo uděleno obrovské množství patentů na úplně triviální nápady a v tom já vidím velký problém. Existuje organizace, která se mnoho let snažila patentovat všechny zbývající triviální postupy a zpřístupnit je lidem. Pokud by udělování patentů pokračovalo tímto způsobem, mohlo by počítačový průmysl úplně zastavit.

Algoritmy jsou záležitostmi matematiky a měly by být stejně nepatentovatelné jako hodnota čísla pí. Pokud se však jedná o něco netriviálního, pak již zní rozumněji dát někomu právo na krátkou dobu si postup licencovat místo toho, aby jej prohlásil za obchodní tajemství. To je myšlenka stojící za patenty, slovo „patent“ znamená „zveřejnit“.

Já jsem studoval matematiku, takže nejsem zvyklý žádat penci od každého, kdo použije teorém, který jsem dokázal. Na druhé straně si jistě rád řeknu o peníze za to, když někomu poradím, který z teorémů použít. Je v pořádku vydělávat na službách, změnách a vylepšeních, ale nesnažte se algoritmy si přivlastnit.

Otázka: Vypisoval jste šeky lidem, kteří našli chyby ve Vašich knihách. Nikdy jsem ale neslyšel o nikom, kdo by si takový šek nechal proplatit. Víte, kolik peněz byste musel vydat, kdyby si najednou všichni nechali Vaše šeky proplatit?

Knuth: Poblíž Frankfurtu žije jeden muž, který by pravděpodobně získal více než 1000 dolarů. V Los Gatos zase bydlí jiný člověk, nikdy jsem ho nepotkal, který si zhruba každý měsíc nechává proplatit šek na $ 2,56 a dělá to již několik let. Za ta léta jsem již rozeslal přes 2000 šeků a jejich průměrná hodnota přesahuje 8 dolarů. Kdyby si je teď nechali všichni proplatit, stále by mi to stálo za to vědět, že se mé knihy zlepšují.

S tím souvisí i odpověď jednoho čtenáře na Slashdotu, který byl dotázán, zda si nechal šek proplatit.

„Ne. Můj otec (mimochodem také pozoruhodný počítačový vědec) mi vyhrožoval, že se mnou nebude chtít mít nic společného, pokud si nechám proplatit Knuthův šek.“

Diskuze (42) Další článek: Konec nadvlády nVidii a ATi, přichází SiS Xabre

Témata článku: , , , , , , , , , , , , , , , , , , , ,