Iako je prošlo više od tri decenije od njegovog objavljivanja, Python je izuzetno popularan programski jezik koji podjednako vole i iskusni programeri i oni koji tek ulaze u svet kodiranja.
Prema PYPL i TIOBE indeksima, Python zauzima prvo mesto na listi najkorišćenijih jezika u svetu, podaci su iz oktobra 2023. godine.
Istraživanje Stack Overflow za 2022. pokazuje da je Python bio drugi najtraženiji programski jezik. Zato, svaki programer koji odluči da uči i koristi Python ima velike izglede za zaposlenje i profesionalni razvoj.
Nakon što se odlučite za Python kao svoj glavni programski jezik, pojavljuje se sledeće pitanje: Da li koristiti Python 2 ili Python 3 za svoje projekte? Ovo je dilema sa kojom se mnogi Python programeri suočavaju, a ovaj članak će vam pomoći da donesete pravu odluku.
Šta je Python 2?
Python 2 i Python 3 su dve glavne verzije programskog jezika Python. Verzija 2.0 je objavljena 2000. godine i donela je poboljšanja koja su imala za cilj da olakšaju učenje i korišćenje Pythona.
Python 2 je takođe predstavio predlog za poboljšanje Pythona (PEP), dokument koji pruža informacije o novim funkcijama Pythona i služi kao primarni mehanizam za predlaganje novih funkcija.
Python 2 je bio izuzetno popularan i intenzivno ga koriste programeri i kompanije. Međutim, 1. januara 2020. godine, podrška za Python 2 je ukinuta. Nakon ovog datuma, nisu razvijana poboljšanja za Python 2. Poslednja verzija Pythona 2 je bila 2.7, objavljena 2010. godine.
Pošto Python 2 više nije podržan, fokus se preusmerio na sledeću veliku verziju jezika Python.
Šta je Python 3?
Python 3 je prvi put objavljen 3. decembra 2008. godine. Cilj njegovog uvođenja bio je ispravljanje dizajnerskih nedostataka i bezbednosnih problema prisutnih u Pythonu 2. Python 3 je doneo značajne promene i nove funkcije kako bi se izbegla suvišnost u kodiranju i da bi Python kod bio čitljiviji.
Suvišnost kodiranja se odnosi na ponavljanje ili dupliranje koda. Python 3 je doneo izmene u sintaksi jezika, između ostalog. Ove promene su bile toliko velike da kod napisan u Pythonu 3 nije kompatibilan sa Pythonom 2.
Iako se očekuje da sve kompanije i programeri trenutno koriste Python 3, to nije uvek slučaj. Istraživanje JetBrains o Python programerima iz 2022. godine pokazalo je da 7% programera još uvek koristi Python 2, najčešće u analizi podataka, kompjuterskoj grafici i DevOps-u.
Kako programeri najčešće rade sa kodom, pogledajmo primere koda koji naglašavaju razlike u sintaksi između verzija pre nego što pređemo na glavne razlike.
Sintaksne razlike između Pythona 2 i Pythona 3
Jedna od razlika je način na koji se ispisuje na standardni izlaz. U Pythonu 2, `print` je izjava, dok je u Pythonu 3, `print` funkcija. Primeri koda ispod pokazuju razlike u ispisivanju koristeći Python 2 i Python 3.
Python 2
print "Hello, World!"
Izlaz:
Python 3
print("Hello, World!")
Izlaz:
Još jedna razlika u sintaksi je upotreba napomena o tipovima. Napomene o tipovima nam omogućavaju da navedemo tip promenljive, parametra ili povratne vrednosti. Ovo pomaže da se minimiziraju greške u kodu i jasno komuniciraju očekivani tipovi podataka.
Napomene o tipovima su podržane u Pythonu 3, ali nisu podržane u Pythonu 2. Primer ispod prikazuje napomene o tipovima u Pythonu 3 i isti kod bez napomena o tipovima u Pythonu 2.
Python 3
U primeru ispod, `int` označava da promenljiva `age` treba da bude ceo broj. `str` se koristi za označavanje tipa argumenta u funkciji `greet`, kao i njenog tipa povratne vrednosti.
# Type annotation - using int to indicate age is an integer age: int = 30 # Type annotation - str using to indicate the argument type # and the return type of the greet() function def greet(name: str) -> str: return "Hello, " + name result = greet("Alice") print(result) print("Your age is " + str(age))
Izlaz:
Hello, Alice Your age is 30
Python 2
Obratite pažnju da kod nema napomene o tipovima. Takođe, obratite pažnju na način na koji se štampa.
age = 30; def greet(name): return "Hello, " + name result = greet("Alice") print result print "Your age is " + str(age)
Izlaz:
Hello, Alice Your age is 30
Još jedna razlika je rezultat celobrojnog deljenja. Da bismo to videli, uradićemo celobrojno deljenje u Pythonu 2 i Pythonu 3:
U Pythonu 2, rezultat celobrojnog deljenja je ceo broj, a decimalni deo se odbacuje. U Pythonu 3, rezultat je float vrednost koja uključuje decimalni deo.
Na osnovu ovih razlika, da li biste radije koristili Python 2 ili Python 3? Da li mislite da je Python 3 bolji od Pythona 2? Ako još niste sigurni, pogledajmo još razlika između ove dve verzije.
Razlike između Pythona 2 i Pythona 3
Razlike između verzija 2 i 3 su prikazane u tabeli ispod:
Funkcija/Aspekt | Python 2 | Python 3 |
Datum izlaska | 16. oktobar 2000. | 3. decembar 2008. |
Zvanična podrška | Zvanična podrška je završena 1. januara 2020. | Trenutno je zvanično podržana verzija Pythona |
Performanse | Sporiji u većini slučajeva. | Bolje performanse i brži od Pythona 2 u većini testova. |
Skladištenje | Stringovi se podrazumevano čuvaju kao ASCII. | Stringovi se podrazumevano čuvaju kao UNICODE. |
Celobrojno deljenje | Deljenjem dva cela broja dobija se ceo broj koji odbacuje decimalni deo (npr. 5/2 == 2). | Deljenjem dva cela broja dobija se float vrednost (npr. 5/2 == 2.5). |
print ključna reč | `print` je izjava (npr. `print „Hello, World!“`). | `print` je funkcija (npr. `print(„Hello, World!“)`). |
Napomene o tipovima | Nema ugrađenu podršku. | Ima ugrađenu podršku za napomene o tipovima. |
Iteracija | Iteracija se vrši pomoću `xrange()` funkcije. | Iteracija se vrši pomoću `range()` funkcije koja je efikasnija od `xrange()`. |
Biblioteke | Mnogo biblioteka nije kompatibilno sa Python 3. | Mnoge Python 3 biblioteke su dizajnirane da rade samo sa Python 3. Nudi bolju podršku, najpopularnija verzija Pythona. |
Kako preći sa Pythona 2 na Python 3
Pošto Python 3 ima bolju sigurnost i performanse, jasniju sintaksu sa manje suvišnosti, i zvanično je podržana verzija, ima smisla preći sa Pythona 2 na Python 3.
Međutim, to je lakše reći nego učiniti. Python 3 nije kompatibilan sa Pythonom 2. Migracija projekta sa Pythona 2 na Python 3 može biti veoma izazovna i zahtevaće mnogo vremena i truda, u zavisnosti od veličine projekta.
Na primer, Dropboxu, sa Gvidom van Rosumom, kreatorom jezika Python koji je radio za njih, trebalo je oko tri godine da pređu sa Pythona 2 na Python 3.
Da biste prešli sa Pythona 2 na Python 3, prvo se uverite da jasno razumete razlike između dve verzije i procenite cenu migracije. Kada to uradite, obavezno koristite sistem kontrole verzija kako biste mogli da vratite aplikaciju na prethodnu verziju u slučaju grešaka.
Pogledajte zavisnosti na koje se aplikacija oslanja i saznajte da li su kompatibilne sa Python 3. Izaberite one koje jesu.
Sledeći korak je modifikacija koda. Iako ovaj proces možete da uradite ručno, Python ima alatku pod nazivom 2to3 koja čita kod Pythona 2 i transformiše ga u Python 3. Koristite ovu alatku da biste ubrzali migraciju.
Tokom migracije, testirajte i rešavajte probleme koji se pojave u kodu. Koristite alate za automatsko testiranje da biste ubrzali proces i obezbedili visok stepen pokrivenosti testa.
Tokom procesa migracije, dokumentujte sve korake. Takođe, primenite iterativni pristup. Umesto da migrirate celu bazu odjednom, radite postepeno, migrirajući različite module u različitim iteracijama.
Faktori koje treba uzeti u obzir pri izboru između Pythona 2 i Pythona 3
Kada radite sa Pythonom, postoji nekoliko faktora koje treba uzeti u obzir pri odlučivanju da li ćete raditi sa verzijom 2 ili 3.
Neki od tih faktora su:
- Nivo iskustva – Ako tek učite Python, koristite Python 3, jer ćete ga verovatno koristiti u budućnosti i imaćete pristup više resursa za učenje. Ako ste iskusan programer, možete koristiti verziju koja najviše odgovara projektu i koju većina članova tima razume.
- Nasleđeni kod – Možda ćete raditi na velikim bazama koda napisanih u Pythonu 2. U nekim slučajevima, cena migracije na Python 3 može biti veća od prednosti.
- Kompatibilnost biblioteka – Neke biblioteke iz Pythona 2 još nisu u potpunosti kompatibilne sa Pythonom 3. U tom slučaju, možda je bolje koristiti Python 2.
- Performanse – Ako razvijate aplikaciju koja zahteva visoke performanse, koristite Python 3. On je efikasniji i nudi funkcije koje dovode do efikasnijih aplikacija, kao što rade Instagram i Dropbox.
- Dugoročna održivost – Python 2 više nije zvanično podržan, pa je bolje koristiti Python 3 kao bezbedniju i dugotrajniju opciju.
U idealnom slučaju, treba koristiti Python 3 u svim projektima, jer je to zvanično podržana verzija i nudi poboljšanja za razvoj i performanse aplikacija.
Python 2 koristite samo u posebnim slučajevima, kao što su zastareli projekti ili projekti koji imaju specifične zahteve.
Zaključak
Kao Python programer, gotovo svi moji projekti su rađeni u Pythonu 3. Poboljšani dizajn, bolje performanse, bolja sigurnost i čitljivija sintaksa čine Python 3 boljim izborom od ove dve verzije.
Pošto je Python 3 zvanično podržana verzija i budućnost jezika Python, trebalo bi da koristite Python 3 u svojim projektima.
Sada pogledajte kako proveriti verziju Pythona u operativnim sistemima Windows, Linux i macOS.