Pagaliau perskaičiau Eric Steven Raymond knygą "The Art of UNIX Programming". Užbėgdadmas už akių turiu pasakyti, kad ši knyga nėra kažkoks tai labai techninis skaitinys, nors iš esmės kalbama apie programinę įrangą....
Pagaliau perskaičiau Eric Steven Raymond knygą "The Art of UNIX Programming". Užbėgdadmas už akių turiu pasakyti, kad ši knyga nėra kažkoks tai labai techninis skaitinys, nors iš esmės kalbama apie programinę įrangą. Pavyzdžiui, pirmos dalies pirmas skyrius vadinasi "Filosofija", o antras "Kultūra", etc. Atitinkami yra ir tų skyrių turiniai. Tad čia visi visokio plauko skaitytojai ras įdomybių. Reikia pridurti, kad autorius sakydamas UNIX čia nori pabrėžti ne tiek specifinę operacinę sistemą, kiek pačios sistemos istoriją.
Eris S. Raymond yra programuotojas, rašytojas, atviro kodo kultūros propaguotojas. Be kita ko dar ir ginklų teisių gynėjas. Wikipedija sako, kad jis yra "Hakerių žodyno" sudarytojas. O tai šį bei tą sako apie autoriaus kompiuterijos pasaulio užkaborių žinias. Kaip ir dažnas hakeris, autorius neieško žodžio kišenėje. Prisiminkim Linus Torvalds arba Zed Shaw ir jų oratorystės sugebėjimus. Knygoje tikrai netrūksta vaizdingų palyginimų (iki Užkalnio gal ir netempia, bet džiaugsmo suteikia skaitant suteikia pakankamai), metaforų ir anekdotų. Mokėjimas valdyti žodį ir yra ta priežastis, kodėl knygą gali skaityti ir ne techniniai skaitytojai -- pagrindinės idėjos pateiktos labai taikliai ir glaustai. Nėra kur pasimesti.
Knygos pavadinime ne veltui yra žodis menas. Atrodytų, koks čia menas -- programuoti, ir dar UNIX? Tačiau geriau pagalvojus, bet kokio programavimo tikslas yra kažkokia tai sistema. Gal net gera sistema. O kaip turi atrodyti gera sistema, niekas tiksliai nežino (o jei sako, kad žino, tai tik apsimeta), todėl čia prasideda kūryba, o kartu išlenda ir mąstymo ypatumai. Šituos mąstymo ypatumus būdingus UNIX programuotojams autorius ir norėjo parodyti. O kaip mąstymo ypatumos galima pristatyti geriau jei ne istorinėje perspektyvoje, kur susiduria skirtingos paradigmos? Būtent, todėl iš šios knygos galima labai daug išmokti.
Knyga pradedama nuo UNIX taisyklių sąrašo (aišku ne baigtinio). Taisyklių visų čia nepateiksiu, nes jų nėra mažai, bet pavyzdžiui "aiškumo taisyklė" sako, kad iškumas yra geriau nei gudrumas (angl. Rule of Clarity: Clarity is better than cleverness). Tolesniuose knygos skyriuose šios taisyklės yra pritaikomos skirtingiems UNIX aspektams.
Nežinau, ar čia tik man taip, bet dažniausiai geriausiai atsimenu mintis dėstytas knygos pabaigoje. Autorius aprašė, ką suprato lankydamasis Apple programuotojų konferencijoje 2003 metais. Jis pamatė, kad Apple programuotojai dažniausiai sistemą kūrimą ar plėtojimą pradeda nuo apmąstymo, kokia turėtų būti vartotojo patirtis (angl. user experience), o jau tada bando kažkaip techninius klausimus išspręsti. Tuo tarpu UNIX programuotojų tipinės problemos yra infrastruktūrinės, pavyzdžiui, kaip iš mašinos A į mašiną B perpompuoti terabaitus duomenų, kai kanalas yra nepatikimas. Diametraliai skirtingi prioritetai duoda skirtingus rezultatus: Apple programos turi nušlifuotą interfeisą ir apribotą funcionalumą, nes visa infrastruktūra nėra be bėdų; tam, kad būtų galima naudotis UNIX sistemomis dažnai prisireikia ekspertinių žinių ir vartotojo patirtis nebūna pati geriausia, bet infrastruktūros atžvilgiu yra sprendimai yra geresni. Palyginimui sakykim taip: Apple -- viešbutis su apypikte administracija; UNIX -- statybų aikštelė, kur pats sau viršininkas.
Knygos pabaigoje yra apžvelgiamos ir didžiosios UNIX problemos (o kas sakė, kad UNIX problemų neturi?). Bet čia apie jas nepasakosiu, nes primygtinai rekomenduoju imti knygą ir patiems persiskaityti.
Dar daugiau, knygoje, o ir knygos prieduose yra zen istorijų. Gražios istorijos yra apie Master Foo ir jo mokinius, kaip antai Script Kiddie. Šita dalis vadinasi "bešaknės šaknys" (angl. rootless roots). Gražus pavadinimas. Arba istorija apie Random Jr. Newbie, kaip jis nenorėjo naudoti svetimo kodo ir viską darė pats, o paskui turėjo daug vargo vargti dėl to.
Aš manau, kad autorius tikrai yra susipažinęs su tarp kompiuterininkų plačiai žinomu Robert Pirsig veikalu "Zen and the art of Motor maintanance", kur nieko apie kompiuterius nėra pasakyta, nors yra labai daug apie juos pasakyta.
Knyga labai įvairiapusė. Todėl ir skaitymas užtruko daugiau nei 7 mėnesius. Pirma, zen yra priešprieša skubėjimui. Antra, labai daug nuorodų į labai gerus tekstus. Kad ir nuoroda į utopinę OS Plan 9. Arba ne tiek utopinę Haiku OS.
Vietoje pabaigos galiu tik pasigirti, kad skaičiau šitą knygą. Jei pačiam įdomu, kas per kosmonautų (kita puiki knyga, pasakojanti, kodėl informatikai yra kosmonautai, yra John Markoff "What the Dormouse Said") "išmistlas" yra kompiuteriai šita knyga gali būti Tavo radonoji piliulė. Žinoma galima rinktis ir mėlynąją piliulę, bet rinkis raudonąją.
rodyti daugiau