Minden ami „könyv”

Bölcsesség

Encsé nagyon leépült mostanság. A héten már a harmadik testrésze gyulladt be: a  bölcsességfoga, pontosabban a fölötte levő íny, amitől sosem tudott rendesen kinőni az a szegény fog. A fogorvos bácsi szerint ki kellene húzni, mármint ki kellene vésni onnan. hátafaszom

Közben elkezdtem olvasni a Structure and Interpretation of Computer Programs című könyvet. Most vagyok a közepén, és tetszik. Bár eddig csupa olyan dologról volt benne szó, amit hallottam már az egyetemen (ha más nem a Horváth Zoltán-féle kurva jó Clean előadáson). Viszont van benne egy csomó jópofa konstrukció, meg bonyolultnak látszó problémára adott elegáns válasz, ami miatt nagyon élvezetes olvasmány.

Inkább nem másolnám ide a tartalomjegyzéket, de az első fejezet a függvényekkel elkövetett absztrakcióval, a második az adatabsztrakcióval foglalkozik, tisztán funkcionális megközelítést alkalmazva. Nagyjából mindenféle jóság benne van, amire csak gondolni lehet, és az első fejezet végére annyira gyönyörűen épül fel a különböző trükkösebbnél trükkösebb függvényekből (higher-order functions) az Anal I-ből megismert gyökvonó algoritmus, hogy csak áradozni lehet róla.

Az imperatív szar a ventillátort a harmadik fejezetben üti meg, amikor bevezetésre kerül az értékadás mint olyan. A szerzők ugyanis azt az elvet hangsúlyozzák, hogy a világot (és a benne felmerülő problémákat) igazából ojjektekkel, ezek állapotaival, kölcsönhatásaival ésatöbbi lehet jól modellezni. Az értékadásnak természetesen komoly ára van, amiről hosszú értekezést kapunk például a konkurens számítások kapcsán. A fejezet végén aztán bepillantunk a ‘mi lenne ha az állapotváltozások helyett inkább úgy gondolnánk a világra, mint állapotok egy pontenciálisan végtelen sorozatára’ mondakörbe. Mivel pedig a végtelen sorozatot elég nehéz beleerőltetni a számítógép memóriájába, kapunk egy szép kis értekezést delayed evaluation-ről. Dióhéjban: ha egy sorozatból ki kell számolni egy másikat, akkor a kimenet tetszőleges prefixét sokszor előállíthatjuk úgy is, hogy a bemenetnek még csak egy adott véges kezdőszeletét ismerjük. Izünt det gréjt? (Tényleg az: beszarsz, behugyozol, amikor először látod.)

Hátra van még két fejezet, ami ha jól sejtem az első háromban bevezetett modellek implementálásáról fog szólni (nem biztos: angolul van…). Ha sikerül megrágni (bár itt már azért belassult a Zencsé), talán írok azokról is.

Kiegészítés (március 15.)

Vége. A negyedik fejezet valójában a nyelvi absztrakcióról szól. Ez nagyjából az, amit a programozó egész nap csinál: nyelvek definiálása. Ha valaki, akkor én igazán tudom milyen ez, hiszen az elmúlt évben jóformán semmi mást sem csináltam, mint az A nyelvben megírt dolgokból B nyelvben megírt dolgokat készítettem egy C nyelven megírt transzformáció segítségével. És ha valami nem stimmelt, akkor megpróbáltam megbeszélni a dolgot az A, B vagy C nyelvért felelős kollégával. Szóval ez a negyedik fejezet, de a kóbor apácák megtévesztése végett LISP interpreternek álcázták. Ugyanis a LISP volt az a nyelv, amin a szerzők a nyelvi absztrakciót megpróbálták bemutatni. Szerintem értelmesebb lett volna valami könnyebben emészthető dologgal megpróbálkozni, mint a LISP-ben írt LISP interpreter, de azért sikerült abszolválni ezt is.

Az ötödik fejezet pedig egy regiszter gép modellezése volt. Ez tkp. olyan mint amilyennek az ember a számítógépet elképzeli: regiszterek, utasítások stb. Zárásképpen pedig megvizsgáltuk a regiszter gépen futó LISP interpertert, és a LISP-ből a regiszter gép nyelvére fordító compiler működését is.

Összességében az utolsó két fejezet sokkal aprólékosabb, mint az első kettő. Sok bennük a sallang, és nem olyan olvasmányosak. Kevesebb bennük a ‘hoppá’ élmény, de egyáltalán nem bántam meg, hogy elolvastam ezt is.

Már csak azt sajnálom, hogy 22000 Ft-ba kerül a könyv, így nem biztos, hogy megveszem magamnak a polcra. Mindenesetre köszönet Charlesnak, hogy ajánlotta, és Mayának, hogy beszerezte a csapatnak

Hugh Laurie: A Balek

Nagy Dr. House mániás az egész iroda, így adni kellett egy esélyt a Laurie könyvnek: hátha. Annyira rossz csak nem lehet… Valami bugyuta kis történetre számítottam, viszonylag élvezetesen megírva, a végén jópofa csavarral, amitől jó szájízzel teszem fel a polcra, hogy egy fél év múlva örömmel adjam kölcsön valakinek, aki persze elfelejti visszaadni. Ahogy ez már lenni szokott.

De nem így történt. A három kívánalamból csak a bugyuta kis történet volt meg. Csavar nincs, a szöveg pedig túlerőltetett metaforákkal van tele. A legnagyobb poén talán az volt, hogy szinte minden kétszer van leírva. Valahogy így:

Paulie pontosan egykor érkezett, de tudtam, hogy bocsánatot fog kérni a késésért.
– Bocs, hogy késtem – mondta. – Mit iszol?

Lehet, hogy a kiadó szótagszámra fizetett. Esetleg ez az a híres angol humor, amivel mindenhol reklámozzák a művet. Nem tudom.

Szerintem ez a könyv szar, és nyomhattak volna valami értelmes dolgot is arra az egyébként borzasztó finom illatú papírra. Annyira jó illat volt a boltban, amikor vettem! Imádom a könyvszagot.

Hackers

A héten megjött az egyik könyvem, amit még tavaly rendeltem a Software Station-től. Steven Levy: Hackers – heroes of the computer revolution. Letehetetlen. Nem gondoltam, hogy idén már januárban elolvasom az év könyvét, de nincs kétségem afelől, hogy ez viszi el a pálmát. Kicsit ugyan lassan megy, mert angolul van, de azért nem vészes. Ráadásul túl jó ahhoz, hogy csak úgy félredobjam, tehát még így is hamarabb el fogom olvasni, mint egy hasonló hosszúságú magyarul írt könyvet. :)

Történelem. A dolog a számítógépekkel ott lett elrontva, hogy az MIT-n volt egy vasúti modellező klub. Mivel pedig egy normális terepasztal irányításához kell egy csomó relé, mindenféle switch, meg egyéb anyámkínja, néhány koszos, beszédhibás és erősen antiszociális fiatal, az autószerelőknél használatos gördeszkaszerű izén fekve, naphosszat csak ezeket buzerálta. Aztán véletlenül találtak egy lyukkártyarendező gépet valamelyik teremben, és beindult a fantáziájuk… Hogy működik? Mit lehetne ezzel csinálni?

Innentől már nehéz volt őket távol tartani az egyetem IBM 704-es gépétől, és nem sokkal később rátették a kezüket a 120 ezer dolláros PDP-1-re. (Ez már csak afféle miniszámítógép volt az 704-es mellett: második generációs gép lévén tranzisztorokkal működött, sokkal kisebb volt tehát, és a 15 tonnás hűtőrendszer sem járt hozzá szériatartozékként.) Mit is csinálna egy vérbeli hacker egy ilyen drága gépen? Természetesen videojátékot, hiszen olyan jó kis interaktív masina volt ez…

Akkoriban volt divat a ‘gondolkodó gép’ project, és mindenki a LISP-en, meg a számítógépes sakkon törte a fejét. Hőseink titokban összekötöttek két monstrumot, majd egymástól függetlenül mindegyikhez leültettek egy-egy professzort. “- Tessék, írtunk neked sakkot!” Folytassam? A dolog ott bukott le, hogy az egyik profnak gyanús lett, hogy a gép kicsit furcsa tempóban nyomtatja ki a lépéseket. Mintha egy ember gépelné valahol…

Ha benne vannak ebben az iparágban, el kell olvasniuk ezt a könyvet. Kötelező irodalom. Aztán ráismernek néhány kollégájukra, és azonnal meg fogják érteni, miért kezel harminc órát egy napként huszonnégy helyett, vagy miért írja át hétvégén az egész projectet mindenki háta mögött.

Relevántos linkek: