Richard Dawkins a programátorská mánie

Biologie |

Programátor by býval mohl během pěti minut napsat program, který by problém X řešil, spokojit se s tím a dané řešení použít. To by ale bylo příliš prosté.

Richard Dawkins a programátorská mánie



Vraťme se do roku 1970, kdy mi bylo devětadvacet let a byl jsem zpátky v Oxfordu. Zpívající Elliott se tehdy ubíral stejnou cestou jako všechny počítače s křemíkovými mikročipy, Moorův zákon a výzkumný grant, který mě předchozího roku přitáhl nazpět do Oxfordu, mi ale otevřely cestu k „vlastnímu“ počítači, PDP osmičce, která Elliotta v každém ohledu předčila, s výjimkou fyzické velikosti a ceny.

Ve srovnání s moderními laptopy byla ovšem, opět v souladu s Moorovým zákonem (jehož předpovědi se v těch dnech už viditelně naplňovaly) po stránce funkčnosti mnohem horší a po stránce objemu mnohem větší, a její součástí byl, zcela absurdně, i záznamník návštěv, do něhož jste se museli při každém zapnutí zapisovat (to jsem samozřejmě nedělal). Byla mou pýchou a radostí i cenným nástrojem – tím spíše, že jsem v Bevington Road 13 sloužil jako výlučný programátor pro všechny (což si vybíralo daň v podobě mého času). Mohl jsem teď své počítačové vášni skutečně popustit uzdu a už jsem se jí nemusel oddávat po nocích jako při svých neslavných pletkách s Elliottem 803.
Nepoužíval jsem v minulosti než vysokoúrovňové kompilované jazyky, což byly lidsky srozumitelné jazyky, které si počítač překládá do svého vlastního binárního strojového jazyka. Abych ale mohl začít používat PDP osmičku jako nástroj při svém výzkumu, musel jsem si osvojit její dvanáctibitový strojový jazyk, což byl úkol, do nějž jsem se pustil s chutí. Mým prvním projektem ve strojovém kódu byly „Dawkinsovy varhany“, systém pro zaznamenávání zvířecího chování, což byl ekvivalent přístroje na „získávání dat“ George Barlowa, ale mnohem, mnohem lacinější. Nápad spočíval v tom, že vyrobím klávesnici, kterou bych mohl používat v praxi při pozorování. Když provede zvíře nějakou akci, stisknu klávesu, a to stisknutí se zaznamená na pásku, která později sama řekne počítači, kdy se přesně jaká zvířecí akce odehrála.
Moje klávesnice připomínala doslova jakési improvizované elektronické varhany, přičemž každá klávesa vydávala jiný tón (slyšitelný jenom pro záznamovou pásku). To nebyl problém vyrobit. Bedna obsahovala jednoduchý dvoutranzistorový oscilátor, jehož výšku tónu určoval příslušný elektrický odpor. Každá klávesa na varhanách připojovala jiný rezistor, a tak vznikaly různé tóny. Pozorovatel si měl vzít varhany k ruce a sledovat zvířecí chování podobně jako analytik práce, který mačká různé knoflíky pro různé pozorované činnosti. Zaznamenáním tónové sekvence pak vznikne záznam časově určeného zvířecího chování.

Teoreticky by si sice mohl nahrávku poslechnout člověk s dobrým sluchem a rozpoznat, která klávesa byla kdy stisknuta, ale takhle bych se moc daleko nedostal. Potřeboval jsem do role člověka s dobrým sluchem obsadit počítač. Dalo by se toho docílit i elektronicky, s pomocí řady frekvenčních detektorů, ale to by byl drahý špás. Nedokázal by totéž co frekvenční detektory, tedy dokonalé rozlišení
výšek tónů v počítači, zajistit samotný software?
Radil jsem se o tom se svým tehdejším počítačovým guruem Rogerem Abbottem, chytrým inženýrem (a shodou okolností i varhaníkem), který pracoval na velkém výzkumném grantu ve službách profesora Pringlea. Roger přišel s podnětným návrhem. Každý tón má svou charakteristickou vlnovou délku, která určuje jeho výšku. Počítače jsou – a byly, dokonce už tehdy – tak rychlé, že interval mezi amplitudami jednoho tónu šlo měřit stovkami programových cyklů. Roger mi navrhl, abych napsal ve strojovém kódu program, který by zjišťoval periodu tónů: jinými slovy, abych vytvořil prográmek, který by fungoval jako vysokorychlostní hodiny a počítal, kolik programových smyček dokáže projet, než ho přeruší další amplituda (což mu, když si to zprůměruje s množstvím period, sdělí výšku tónu).

Jakmile tón skončí (jakmile uplyne od poslední amplitudy větší než kritické množství času), bude mít počítač za úkol poznamenat si čas a počkat na další varhanní tón. Úkolem počítačové hodinové smyčky tak, jinými slovy, nebude jenom rozpoznat výšku příslušného tónu, ale, na mnohem delší časové ose, i změřit časový odstup mezi tóny. Jakmile byl tenhle postup na světě, zbývalo už jenom dát si tu práci a napsat a doladit nějaký uživatelsky přátelský program. Zabralo mi to dost času, ale nakonec jsem byl úspěšný. Dawkinsovy varhany byly životaschopný produkt. Jejich uživatel začínal každou seanci tak, že nahrál na pásku stupnici, neboli všechny varhanní tóny od nejnižšího k nejvyššímu. Zaznamenané stupnice pak bylo použito ke „kalibraci“ softwaru neboli k tomu, aby se počítač „naučil“ tónový repertoár, který bude mít dle požadavku za úkol rozpoznávat.

Jakmile dospěla kalibrační stupnice ke konci (opětovným stisknutím klávesy prvního tónu), označoval už každý následující tón na pásce nějaké zvířecí chování. Výhodou kalibračního systému bylo, že varhany nebylo třeba pečlivě ladit.

Jakýkoli soubor navzájem se dostatečně lišících tónů udělal svou službu, protože počítač se rychle naučil jednotlivé tóny si vyčíhat.
Když jsem pak pásku přinesl domů a přehrál ji do počítače, věděl počítač přesně, co zvíře udělalo a kdy. Jádrem programu byla hodinová smyčka, ovšem vnořená do značného množství kódovaných pokynů, tak aby se na papírové pásce objevovaly názvy všech vzorců chování i přesný čas, kdy se vyskytly.
O Dawkinsových varhanách jsem publikoval článek a software jsem dal zdarma k dispozici. Během následujících několika let využívali Dawkinsovy varhany mnozí členové oxfordské SVZCH i několik dalších etologů odjinud, například z Univerzity v Britské Kolumbii.
Opojení z počítačového programování mě čím dál víc spirálovitě vtahovalo do sebe. Vytvořil jsem dokonce vlastní programovací jazyk BEVPAL, s vlastním programovacím manuálem. Bylo to poněkud zbytečné cvičení, protože ten jazyk jsem nevyužíval než já sám a – krátce – Mike Cullen. Přesně takový druh počítačového opojení, jaký zachvátil mě, popsal zábavně satiricky Douglas Adams. Terčem jeho satiry byl programátor s jakýmsi konkrétním problémem X, který si žádal řešení. Ten programátor by býval mohl během pěti minut napsat program, který by problém X řešil, spokojit se s tím a dané řešení použít. To by ale bylo příliš prosté. Namísto toho strávil dny a týdny psaním obecnějšího programu, který by mohl kdokoli kdykoli použít k řešení všech problémů obecného typu X. Fascinující na tom je, že namísto aby našel odpověď na konkrétní problém X, usiloval programátor o obecnost a chtěl pro dobro populace hypotetických a velmi pravděpodobně nonexistentních uživatelů vytvořit esteticky příjemný a uživatelsky přátelský produkt. Dalším symptomem počítačové mánie tohoto druhu je, že pokaždé když vyřešíte nějaký marginální problém a přinutíte počítač k dalšímu kousku, chce se vám vyběhnout na ulici a odchytit někoho, komu byste ukázali, jak krásně to funguje.

Tento text je úryvkem z knihy:
Richard Dawkins: Záhadám vstříc: Jak jsem se stal vědcem (Paměti I)
Dybbuk 2015
O knize na stránkách vydavatele

obalka_knihy



Úvodní foto: historicair, wikipedia, licence obrázku GFDL, Creative Commons Uveďte autora-Zachovejte licenci 3.0 Unported




Související články




Komentáře

Napsat vlastní komentář

Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.