Raamatuarvustus "Hackers & Painters: Big Ideas from the Computer Age"
Paul Grahami "Hackers and Painters: Big Ideas from the Computer Age" ilmus 2004. aastal O'Reilly kirjastuse alt. Autor on Lispi programmeerija ja äri poolelt tuntud eelkõige sellega, et kaasasutas Viawebi (millest sai hiljem Yahoo! Store) ja hiljem Y Combinatori. Raamat on muide vabalt loetav ka tema kodulehel paulgraham.com.
Põhiidee, mis raamatust välja koorub, on see, et programmeerijad ei ole päriselt insenerid ega teadlased, vaid pigem maalikunstnikud. Esialgu hakkasin seda lugema skeptiliselt, sest kõlab nagu tüüpiline häkkerimüüt iseendast. Aga Graham viib mõtte huvitavalt edasi: hea kood, nagu hea maal, sünnib pidevast ümbertegemisest, mitte ühest puhtast esialgsest plaanist. Etteantud kavast alustav ja kosemudelit järgiv tarkvaraarendus on tema sõnul sama mõttetu, kui hakata esimese kihiga kohe valmis maali maalima. See haakub ka tänase agiilse ja DevOpsi mõtteviisiga, kus pidev kordamine ja parandamine on töö loomulik osa, mitte vea märk.
Kõige rohkem mõtlemapanev oli Grahami jutt sellest, kuidas Viaweb kasutas Lispi ajal, mil enamus konkurente kirjutas C++ ja Perlis. Tema väitel oli Lisp neile nagu salarelv: tootlikkus, mida konkurendid ei suutnud isegi kopeerida, sest neil polnud aimu, kui palju see vahet teeb. Hea näide sellest, kuidas keelevalik ei ole neutraalne tehniline detail, vaid äriline relv. Sama mustrit näeb tänagi Rusti ja teiste uuemate keelte juures, kuigi konkreetne võimuvahekord on muidugi teine.
Teine asi, mis kinni jäi, oli Grahami sõnastus idufirma kohta: see on viis pakkida 40 aasta jagu tööd nelja aastasse, et saada selle eest ka rahaline tasu. Aus ja ilustamata kirjeldus, mis tasakaalustab ülejäänud raamatu kohati liiga romantilist tooni häkkimisest kui loomingulisest tegevusest. Lõpuks tehakse seda tööd siiski ka raha pärast, mitte ainult loomingulise eneseteostuse nimel.
Mis raamatus täna kõige rohkem vananenud välja paistab, on tehnilised arutelud spämmifiltritest ja veebirakenduste tulevikust. 2004. aastal oli "veebipõhine tarkvara lauaarvuti tarkvara asemel" veel ettearvamine, mitte iseenesestmõistetav reaalsus. Need kohad töötavad nüüd pigem ajaloolise dokumendina kui prognoosidena, mis on omamoodi huvitav, aga kindlasti mitte see, mille pärast raamatut täna kätte võtta.
Eraldi tahaks välja tuua selle, mida Graham kirjutab "hea maitse" kohta koodis. Tema sõnul on hea kood äratuntav samamoodi nagu hea kujundus: lihtne, sümmeetriline, ilma üleliigsete osadeta. Seda mõtet on kerge naeruvääristada, sest "maitse" kõlab subjektiivse ja mõõtmatuna - kuidas seda koodiarvustuses tõestada? Aga Grahami point on just see, et see ongi mõõtmatu ja just sellepärast nii tähtis. Automaattestid kontrollivad, kas kood töötab, aga keegi peab ikkagi otsustama, kas see ka näeb hea välja ja on hooldatav. Olen ise koodiarvustusi tehes märganud, et kõige raskem on sõnastada, miks mingi lahendus tundub vale, kuigi ta annab õige tulemuse. Graham ütleb, et see tundmine ei ole müstika, vaid oskus, mis areneb sama loomulikult nagu maalikunstniku silm värvi kompositsiooni jaoks.
Kokkuvõttes on tegu hea sissejuhatusega IT-proffi mõttemaailma. Kui sa programmeerid ja sind huvitab, miks su erialast räägitakse nii nagu räägitakse, tasub lugeda. Kui otsid praktilisi tehnilisi nõuandeid, on vananenud osa liiga suur. Kõige väärtuslikum ei olnudki konkreetsed tehnilised ideed, vaid küsimus, kas programmeerimist peakski nägema rohkem loomingulise töö kui klassikalise inseneriana. Mulle endale meeldis kõige rohkem see, et raamat sundis mõtlema oma keele- ja tööriistavalikute peale uue nurga alt.
Kommentaarid
Postita kommentaar