|
<<
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.
|
|