-

tomasz-kurowski : człowiek od genomów ([email protected])

O czarodziejach

Żartobliwie linkowałem przedwczoraj w komentarzu okładkę klasycznego podręcznika akademickiego "Struktura i interpretacja programów komputerowych", najczęściej znanego pod skrótem angielskiego tytułu, czyli "SICP". Funkcjonuje też określenie "Wizard Book", czyli książka z czarodziejem. Eric S. Raymond wyjaśnia w swoim słowniku żargonu hakerskiego, że to ze względu na "czarodzieja" na okładce. Przy okazji nazywa też książkę "biblią" pewnego informatycznego środowiska, związanego z funkcyjnymi językami Scheme i Lisp. Tu okładka jeszcze raz:

Jak można przeczytać z tyłu książki, ryciny pochodzą z francuskiego dzieła Paula Lacroix i Ferdinanda Seré "Le moyen äge et la renaissance". Konkretniej z rozdziału o chemii i alchemii w drugim tomie, gdzie obie postacie, przedstawione w ramach pocztu alchemików, wyglądają tak:

Postać z lewej, czyli ten "czarodziej" to Hermes Tresmegistos, ten od hermetyzmu - synkretyczne połączenie greckiego Hermesa, egipskiego Thota, żydowskiego mistycyzmu i kto wie kogo lub czego jeszcze; ważne, żeby było tajemniczo. Sferę armilarną w ręku Hermesa wypełniono na okładce (progra)mistycznymi zaklęciami "eval" i "apply", to znaczy dwoma kluczowymi funkcjami języka programowania Scheme.

Postać z prawej to Rajmund Llull, którego dzieło "Ars Magna" przedstawia się czasem jako wyprzedzającą jego epokę o całe wieki zapowiedź informatyki. Dążyć miał w nim do opracowania metody uogólnienia, automatyzacji, a nawet mechanizacji rozumowania. Jak uzupełnił Magazynier, Rajmund Llull to poza potencjalną ikoną alchemii czy informatyki także błogosławiony Kościoła rzymskokatolickiego, którego imieniem ochrzczono świętego Maksymiliana Kolbe. Autorów tak ryciny, jak i podręcznika interesowały jednak w jego przypadku inne znaczenia, choć u tych ostatnich również mogące skojarzyć się z Kościołem.

Spowitą płomieniem salamandrę Llulla zastąpiono na okładce grecką literą lambda (λ). Służy ona jako logo języka Scheme oraz ogólnie jako popularny symbol wśród amatorów języków funkcyjnych. Wynika to z faktu, że języki te zainspirowane są rachunkiem lambda, czyli systemem formalnym istotnym w algorytmice i teorii obliczalności. Rachunek lambda to uniwersalny model obliczeniowy, a więc w pewnym sensie nowoczesne wcielenie llullowego "Ars Magna". Opracował go promotor Alana Turinga, profesor Alonzo Church (tu to wspomniane, bardzo płytkie, skojarzenie z Kościołem).

Z położenia postaci na okładce można by zgadywać, że "czarodziej" oświeca tą swoją lambdą młodzieńca. No właśnie - młodzieńca, bo Llull wygląda na tej rycinie bardzo młodo. Trochę to zagadkowe, bo na większości ilustracji, jakie znalazłem, Rajmund Llull jest starcem z brodą. Według Wikipedii broda jest wręcz jednym z jego atrybutów. A niektórzy czytelnicy podręcznika widzą nawet na okładce postać kobiecą. Skoro już wspomniałem Magazyniera, to dodam, że niedawno zaskoczył mnie, biorąc na tapet wypowiedź z serwisu Quora. Postąpię podobnie i pozwolę sobie przełożyć (dodając objaśniające linki) interpretację okładki z programistycznego serwisu Stack Overflow:

  • Panna reprezentuje programowanie funkcyjne. Jest panną (tzn. dziewicą), ponieważ programiści funkcyjni nie mogą robić niczego, co ma efekty uboczne.
  • Stół reprezentuje język COBOL. Dlatego ma nogę demona.
  • Czarka reprezentuje bogactwo, które spoczywa na COBOLu, ponieważ COBOL przynajmniej nadaje się do pisania aplikacji biznesowych.
  • Stół kusi pannę, by porzuciła Lispa i napisała coś, z czego ktoś faktycznie skorzysta. Dlatego wskazuje ona na stół. Czarodziej próbuje ją od tego odwieść.
  • Ostre narzędzia w ręku czarodzieja posłużą zabiciu panny, jeśli nie posłucha. (Programiści funkcyjni denerwują się w obecności COBOLa).

Nieco poważniej, interpretacji z czarodziejem oświecającym młodzieńców i dziewice dodaje mocy fakt, że podręcznik powstał jako akompaniament do słynnej serii wykładów (dostępnej online) prowadzonych na MIT przez jego autorów, profesorów Hala Abelsona i Geralda Jay Sussmana. Sporo w tych wykładach popisowości. Na planszy przed nagraniami wykładów widać czarodzieja, a Abelson otwiera pierwszy z nich, zapisując na tablicy słowa "Computer Science", a następnie energicznie je skreślając. Zdarzają się też odniesienia do mistycyzmu i orientalne przebieranki, to znaczy fez Sussmana. Wszystko to odegrało rolę w uczynieniu wykładów i książki kultowymi w pewnych środowiskach. Przyczyniło się też jednak do tego, że amatorzy języków funkcyjnych mają famę czegoś w rodzaju mistycznego, przekonanego o własnej wyższości kultu. Skutkuje to kpinami jak ta cytowana powyżej. Sam wykłady obejrzałem kiedyś za czasów studenckich, a książkę i zdanie na te tematy posiadam, ale o tym może kiedy indziej.

Tekst sobotni, eklektyczny (synkretyczny?) i luźny, bo na spójny nie było czasu. Zresztą wszyscy zajęci są dziś targami w Ojrzanowie, które jak mam nadzieję idą świetnie!

P.S.

Z polskich wydań coś tę symbolikę wykrojono: https://tezeusz.pl/struktura-i-interpretacja-programow-komputerowych-harold-abelson



tagi: informatyka  alchemicy  programowanie  hermetyzm 

tomasz-kurowski
6 lipca 2024 18:45
7     939    6 zaloguj sie by polubić

Komentarze:

MarekBielany @tomasz-kurowski
6 lipca 2024 23:30

To dość dalekie od zwykłego kodowania tych tam ...

 

P.S.

Wszyscy znamy zasady zaokrąglania liczby. Powyżej 0,5 na plus, a poniżej na minus.

Z kursu na PW metod numerycznych, załoga z WAT  wprowadziła zasadę dla rozwiązywania zadań:

parzyste na plus, nieparzyste na minus ?

Jest pytaniem do czasu spotkania z zerem i jedynką.

 

 

zaloguj się by móc komentować

ArGut @tomasz-kurowski
7 lipca 2024 00:03

W języku polski jest czarodziej i już. Język angielski ma sorcerer-a, wizard-a czy witcher-a. Ci pierwsi mogą się kojarzyć z programowaniem ... Sorcerer z source - kod źródłowy a wizard z asystentem pomocy czy asystentem tworzenia ...

Pan Rajmund Llull zrobił na mnie duże wrażenie, szczególnie stwierdzenie, że prawda filozoficzna i prawda teologiczna to nie to samo. Na to nakłada się koncepcja funkcji znana z działu matematyki nazywanego analizą. F-cja matematyczna na taką ZALETĘ, że dla f(x1)=y1 przy każdym "wywołaniu". W programowaniu nie funkcyjnym, to wcale nie jest takie oczywiste.

 

zaloguj się by móc komentować

gabriel-maciejewski @tomasz-kurowski
7 lipca 2024 07:32

Targi idą świetnie, ale ludzi mogłoby być więcej. Może dziś przyjdą jacyś nowi

zaloguj się by móc komentować

tomasz-kurowski @MarekBielany 6 lipca 2024 23:30
7 lipca 2024 15:34

Te różne metody zaokrąglania to ciekawa sprawa, bo ogólnie szukamy kompromisu i typu zniekształcenia danych, który jest dla nas najbardziej akceptowalny. A potem ta złożoność jest już ukryta przed kimś używającym naszego urządzenia do rozwiązywania problemów na jakimś wyższym poziomie abstrakcji.

W składaniu genomów, o którym pisałem niedawno, jest podobnie. W myśl tego, o co pytał Olekfara, ja jako osoba składająca genom mam różny stopień pewności co do różnych regionów złożonej sekwencji. Jednak już przed biologiem używającym tej sekwencji do jakiegoś eksperymentu te niuanse są z reguły ukryte, a przecież może się zdarzyć, że jakiś ciekawy gen jest akurat w dość podejrzanym regionie, który ledwo znalazł się w końcowej sekwencji.

Ot, abstrakcja :)

zaloguj się by móc komentować

tomasz-kurowski @ArGut 7 lipca 2024 00:03
7 lipca 2024 15:45

W języku polskim jest czarodziej i już (...)

Oj tam, a czarownik i czarnoksiężnik? Od razu bardziej złowieszczo i tajemniczo :) Gabriel we wczorajszym tekście użył pierwszego słowa; ja dla niepoznaki nieco ułagodziłem. Ale fakt, nie mamy dobrego odpowiednika żartu językowego z kodem źródłowym. W polskim tłumaczeniu Pratchettowego "sourcery" było "czarodzicielstwo", ale tam akurat o kod nie chodziło. Zresztą żarty Pratchetta pozostają w większości nieprzetłumaczalne.

Słabo znam tę postać, ale Rajmund Llull i jego dzieła na pewno zasługują na głębsze studia.

Programowanie funkcyjne jest bardzo użyteczne, tylko nie chciałem takich rzeczy roztrząsać w tym tekście. Atmosfera kultu, którą Abelson i Sussman pomagali tworzyć (z ewidentną premedytacją), jest intrygująca sama w sobie, niezależnie od szczegółów technicznych.

zaloguj się by móc komentować


MarekBielany @tomasz-kurowski 7 lipca 2024 15:34
7 lipca 2024 22:01

Pierwsza odpowiedź pooleciała ...

 


No właśnie. Byłem już dużym dzieckiem, kiedy usłyszałem  o abstrakcji.

Dzięki krzemowej technologii możemy się komunikować. To chyba jest tylko rzut beretem/ruch powieki, do zbudowania na najmnieszej wspólnej wielokrotności (NWW) atomów (Si, B, P ... O. C przeszedł do innej ligi) najmniejszego tranzystora na płytce/waflu krzemu.

 

 

 

zaloguj się by móc komentować

zaloguj się by móc komentować