Udruženje Linux Korisnika BiH - ULK
www.linux.org.ba, info@linux.org.ba

<< Osvrti

Datum: 07.07.2005.

Python Cookbook
Autors: Alex Martelli, Anna Ravenscroft, David Ascher
Second Edition March 2005
Publishers: O'Reilly Associates
ISBN: 0-596-00797-3
844 pages, $49.95 US, $69.95 CA, £35.50 UK

Osvrt napisao: Sanel Zukan
Ocjena: 4,5


Python Cookbook je krupna knjiga. Jako krupna knjiga.
Mozda će se čitaocu ovoga osvrta učiniti čudan način da se započne pisati tekst, ali iskreno, ovo je prvi dojam koji je ona ostavila na mene kada sam je dobio u ruke.
Python je, kao jezička cjelina, jako mlad poredeći ga sa konkurencijom koja je u široj upotrebi. Razlog raširenosti i popularnosti ne zahvaljuje moćnim idiomima koji su se mogli naći u jezicima užeg kruga korisnika (mada je i ovo jedan od čimbenika) već filozofijom koja se proteže od njegovog samog nastanka - jednostavnost i jasnost.

Upravo na ovakav način je koncipirana ova knjiga (spomenuću i izraz "pythonirana je").

Knjiga nije namijenjena početnicima i onima koji su tek usli u vode python svijeta. Oni cć morati potražiti alternative u "Python in a Nutshell", knjizi jednog od autora, ili pak u odličnom tutorijalu i referenci autora jezika, koja se isporučuje uz standardnu python distribuciju.  Lično, mislio sam da je spomenuta dokumentacija dovoljna za upoznavanje i istraživanje jezika, i donekle sam bio u pravu. I to samo u prvom slucaju. Guido van Rossum, autor jezika, u svojoj dokumentaciji uspio je na vidjelo iznijeti samo marginalne značajke jezika, dok su naprednije mogućnosti ostale spomenute "između redova" što je standardna boljka svakog autora jezika koji se upusti u pisanje dokumentacije za širi krug korisnika.

Vratiću se na prvu rečenicu. Da, knjiga je obimna, protežući se na 807 stranica (uključujući i index) čistog teksta. Sastoji se od 20 podjeljaka i to (pažnja: naveo sam originalne nazive jer bi prevod bio besmislen):

1.Text
2.Files
3.Time and Money
4.Python Shortcuts
5.Searching and Sorting
6.Object-Oriented Programming
7.Persistance and databases
8.Debugging and Testing
9.Processes, Threads and Synchronization
10.System Administration
11.User Interfaces
12.Processing XML
13.Network Programming
14.Web Programming
15.Distributed Programming
16.Programs About Programs
17.Extending and Embeding
18.Algorithms
19.Iterators and Generators
20.Descriptors, Decorators and Metaclasses

Iz podjeljaka se vidi da su obrađeni svi aspekti kojima se jedan jezik može baviti. Svako poglavlje započinje kratkim uvodom i nekom vrstom mini reference jednog od eksperata u tom polju. To se nastavlja kratkim primjerima problema, njihovim "očitim" rješenjima i diskusiji istog. Zatim taj dio se završava alternativnim, u jako velikom broju iznenađujućom, efikasnijom i brzom. U nemalom broju pored zaključene efikasnosti, autori su se vraćali na početno rješenje ili primjer, želeci zadržati duh jednostavnosti i jasnosti. 

Jedna sitnica me je jako dojmila. Podjeljci su povezani i na neki način se nastavljaju jedan na drugi. Da pojasnim: nemali broj knjiga ima boljku da se referencira na određeni isječak određenog pojma koji se nalazi cca. 100 stranica naprijed ili nazad od njegovog spomena. Ovo zna biti jako iritirajuće, jer sam često završavao skakajući sa jednog dijela knjige na drugi kako bi dati pojam postao objašnjiv sam po sebi. Ovdje to nije slučaj.
Odstupanja su neizbježna, naravno, ali u toliko minornim količinama da se i ne osjeti.

Iz priloženog se da primjetiti da sam bio oduševljen knjigom. U prva dva dana čitanja dao bi čistu peticu, dok treći dan sam se počeo premišljati. Postoji par sitnica, tačnije dvije koje ne upadaju u oči odmah u početku ali njihovo saznanje uveliko umanjuje konačni osjećaj euforije.

Krenuću od manje bitne: na kraju knjige u stilu O'Reilley-a nalazi se mini reklama za njihovu podružnicu Safari, ogroman repozitorij elektronskih knjiga
(saffari.oreilly.com), gdje se spominje da čitaoci mogu u određenom terminu besplatno pristupiti kompletnim izdanjima, naravno uz prilozeni username i password. Žalosna je cinjenica da direktni link (za dati username i password) ne postoji niti se ti podaci mogu unijeti u standardnu Safari-jevu login formu. Jako neprofesionalno.

Druga "sitnica" (meni i nije baš sitnica) je licenca za date primjere. Primjeri u knjizi su "najbolji od nekoliko" selektovanih, uz budno motrenje budućih autora knjige, sa ActiveState-ove stranice namijenjene pythonu. Ipak, na samoj stranici se
spominje da su primjeri (iz ove knjige) besplatni za korištenje (ma šta ovo značilo). Ali u knjzi piše da nisu! Barem ne u potpunosti. Naime, spomenuti i iskoristiti mali broj njih u dokumentaciji svoga proizvoda i proizvodu samom je dopušteno, ali za veći broj morate tražiti odobrenje autora ove knjige! Jako tupavo i jako nejasno. Iako su autori kreatori određenog broja primjera, nedopušteno je stavljati u isti koš ostatak čiji nisu autori i kojeg su eventualno malo, estetski prepravili kako bi se uklopili u koncept knjige.

Za kraj, da ne postoji začkoljica sa licencom, čista petica bi osvanula. Ovako 4,5. Ipak ne dopustite da vas licenca odvuče od ovog sjajnog djela jer se uvijek možete pozvati na licencu sa ActiveState-a. Za povremene python korisnike: posudite je, kopirajte najvažnije dijelove, a za stalne: kupite, kopirajte, ukradite. Definitivno se isplati.


[Mapa stranice]
 
 


Copyleft ULK
LINUX is a registered trademark of Linus Torvalds.