Verzije Pythona

O ovoj temi smo vec pisali u vise navrata. Obzirom da je i dalje aktuelna, posveticemo joj poseban text.

Najpre razlike izmedju v2 i v3 su minorne. Medjutim ipak su dovoljne da code iz jedne verzije nece kao takav raditi u drugoj. Ovde cemo navesti kljucne razlike:

1) Print je od komande postala funkcija.

Na ovo je bilo najvise prituzbi. U pitanju je stil zapravo. Komanda je vise u basic / pascal stilu, dok funkcija podseca na c++/java itd. U praksi medjutim to jednostavno znaci da cete umesto print x pisati print(x) tipa: print 10 -> print(10) ili print ‘blah’ -> print(‘blah’) i slicno.

Da bi ste imali novu funkcionalnost komande print u v2, mozete koristiti future modul. Jednostavno dodajte na pocetku:

from future import print function

2) Deljenje je postalo intuitivnije.

U v2 u koliko ste integer delili sa drugim integerom, rezulat je takodje bio int tako sto je broj bio zaokruzen. U v3 dobijate precizan rezultat. Npr. v2: 3/4 daje 0 dok v3: 3/4 daje 0.75. U koliko u Pythonu v3 zelite da sacuvate tip inputa, tj da vam ostane integer (kao u v2), koristite //. U prethodnom primeru v3: 3//4 daje 0.

Kao i u slucaju printa, ovu funkcionalnost je u v2 moguce uvesti iz buducnost:

from future import division

Ovo su dve najbitnije razlike izmedju dve verzije. Ima jos nekoliko sa kojima se mozete sresti..

3) Ostale razlike:

a) Funkcija raw_input je postala deo input().
b) Ukinuta je komanda file u koristi funkcije open().
c) Funkcija xrange() je postala range().

I to bi bilo to. Najbitnije su prve dve promene dok su pod tri detalji. Preciznije objasnjenje sa primerima mozete skinuti sa sajta Carleton Koledza, katedra za Kompjuterske Nauke ovde.

E sad, zasto ljudi ostaju pri v2. Postoji vise razloga, od kojih su sledeci najcesci:

a) Podrska – validan razlog. Kao stariji v2 ima siru podrsku u smislu libova i pomocnih projekata. Medjutim velika vecina je vec upgradovana na v3, a oni koji nisu to planiraju da urade u najkracem roku.

b) Navika – jos jedan validan razlog. U koliko vam sve radi stabilno i zadovoljava u potpunosti vase potrebe, zasto bi prelazili na novu verziju. Pa stvar je cene i profita. Ulozeni napor je relativno mali, dok ce vam code biti podrzan u jako dugom periodu.

c) Uticaj – Pojedine velike kompanije koriste v2. Dobar primer za ovo je Google, koji koristi v2 za svoje potrebe. Medjutim treba imati u vidu da oni imaju svoje interne razloge za ovo, te da nikad nisu pokusali da uticu na odluke drugih u ovom smislu. Uz veliko postovanje za doprinos Googla IT svetu, razvoj programskih jezika ne bi trebalo da zavisi od prakse jedne kompanije.

d) Prethodni rad – Veliki broj postojecih kurseva i knjiga koristi v2. Vecina ipak planira prelazak u najkracem roku, a svi novi ionako koriste v3. Ovo je obiman posao, te je kasnjenje razumljivo.

Takodje bih se osvrnuo na nesto sto je vec pomenuto. U Winu je kao i u Nixima moguce koristiti vise verzija uporedo. Ovo je uobicajena praksa za programere kojima je potreban paralelni rad. Nakon instalacije u Start meniju ce biti kreirani odvojeni shortcuti a u sistemskom folderu odgovarajuci dll fajlovi. Kada zelite da radite, jednostavno iz Start menija pokrenite odgovarajucu verziju.

Na kraju, preporuka. U koliko sada pocinjete sa Pythonom, najbolje da koristite v3. Ovim cete steci navike koje ce omoguciti da vas code bude podrzan dugi niz godina. U koliko vec programirate u v2, pogledajte odnos cene i koristi. Za relativno mali korak mozete imati solidan benefit. Ne samo u dugoj podrsci za vase programe vec i u buducim dodacima, jer su novi prirodno orijentisani ka v3.

Kao i uvek, izbor je na vama.

Posted on 2014/01/15, in Programski jezici, Python. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: