
Python je programski jezik visokog nivoa.
Nakon godinu dana razvoja, Najavljeno je izlazak stabilne verzije kao i početak faze alfa testiranja programskog jezika Python 3.12 i Python 3.13 (respektivno). Napominje se da će ova nova grana Python-a 3.12 biti podržana godinu i po dana, nakon čega će se još tri i po godine generisati popravke za uklanjanje ranjivosti.
Nova verzija Pythona 3.12 koja je predstavljena dolazi sa poboljšanjima u fleksibilnost analize f-stringova. Sa ovim poboljšanjem sada mnoga ograničenja se mogu ostaviti po strani, budući da, na primjer, sada možete sadržavati bilo koji važeći izraz u Pythonu, uključujući višelinijske izraze, komentare, obrnute kose crte i Unicode izlazne sekvence. Dodatno, interni nizovi sada dozvoljavaju ponovnu upotrebu istih navodnika, tj. dvostruki navodniki sada se mogu ponovo koristiti unutar bez potrebe za prelaskom na jednostruke navodnike.
Na primjer:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Sada je moguće proizvoljno ugnijezditi:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Još jedna od promjena koja se ističe je podrška za izolovane podtumače i odvojene globalne brave, koji imaju za cilj da povećaju efikasnost korišćenja resursa u višejezgarnim sistemima, budući da za različite interpretatore unutar procesa CPython dozvoljava da više interpretatora radi u isto vreme u procesu. Kako sada stoji, funkcija je trenutno dostupna samo preko C-API-a (podrška za Python API će se pojaviti u sljedećoj velikoj grani).
Pored ovoga, ističe se i toInformativni sadržaj poruka o greškama je povećan a raspon izuzetaka je proširen, nudeći preporuke za uklanjanje tipografskih grešaka. Na primjer, sada se prikazuju prijedlozi za uvoz zaboravljenih modula standardne biblioteke i prijedlozi za dodavanje prefiksa “self”.
Dodata mogućnost korištenja bafer protokola u Python kodu. Klase koje pružaju metodu "__buffer__()" sada se mogu koristiti kao tipovi koji rade direktno na binarnim podacima u memoriji.
Modul sys.monitoring je predložen za otklanjanje grešaka i profiliranje, omogućavajući vam da nadgledate događaje u CPython-u kao što su pozivi, vraćanje funkcija, izvršavanje proizvoljnih linija koda, izuzeci i prijelazi uz minimalne troškove.
Interpretator implementira podršku za podsistem performansi Linux kernela, koji omogućava određivanje imena Python funkcija prilikom profiliranja pomoću uslužnog programa za performanse (ranije su se u tragovima određivala samo imena C funkcija).
Što se tiče poboljšanja performansi, spominje se da optimizacije su nastavljene, s kojim Dobijeno je ukupno povećanje performansi procijenjeno na 5%., također je dodano eksperimentalna podrška za BOLT binarni optimizator na proces izgradnje, povećavajući performanse za 1-5%, dok su performanse asyncio paketa značajno poboljšane (neki testovi pokazuju ubrzanje od 75%).
Implementirano je inline proširenje razumijevanja liste, što ubrzava rad sa razumijevanjima liste do dva puta (za kod koji aktivno koristi razumijevanje liste, testiranje je pokazalo ukupni porast performansi od 11%).
Da bi poboljšali sigurnost, ugrađene implementacije SHA1, SHA3, SHA2-384, SHA2-512 i MD5 algoritmi u hashlibu su zamijenjeni sa formalno verifikovanim opcijama iz HACL* projekta (ugrađene implementacije se koriste samo ako OpenSSL nije dostupan).
Of the druge promjene koji se ističu:
- Modul ima proširenu podršku za Windows.
- Python implementira zaštitu od prepunjavanja steka.
Kreiranje klase asyncio.Task je ubrzano. - Veličina Unicode objekata je smanjena za 8 do 16 bajtova.
- Operacije sa regularnim izrazima re.sub(), re.subn() i re.Pattern su ubrzane.
- Pokretanje isinstance() provjera za neke protokole je ubrzano za 2 do 20 puta.
- Značajno (u nekim testovima i do 64%) funkcije tokenize.tokenize() i tokenize.generate_tokens() su ubrzane.
- Učitavanje atributa i pozivanje metode super() je ubrzano.
- Predložena je nova, kompaktnija sintaksa anotacije tipa za generičke klase i funkcije.
- Modul web pretraživača više ne podržava starije pretraživače uključujući Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird i Firefox do verzije 36.
- U pripremi za buduće optimizacije, interni prikaz cijelih brojeva je promijenjen.
Na kraju, ali ne i najmanje važno, kao što je spomenuto, počelo je alfa testiranje Pythona 3.13, u kojem se pojavio način kompilacije CPython bez globalnog zaključavanja tumača (GIL, Globalno zaključavanje tumača).
Podružnica Python 3.13 će biti u alfa verziji sedam mjeseci, tokom kojeg će se dodati nove funkcije i popraviti greške prema novom rasporedu razvoja, rad na novoj grani počinje pet mjeseci prije izlaska prethodne grane i do trenutka kada sljedeća verzija dostigne alfa fazu testiranja.
Nakon toga, beta verzije će biti testirane tri mjeseca, tokom kojih će dodavanje novih funkcija biti zabranjeno i sva pažnja će se posvetiti ispravljanju grešaka. Tokom posljednja dva mjeseca prije puštanja, podružnica će biti u fazi kandidata za oslobađanje, gdje će se dogoditi konačna stabilizacija.
Napokon da zainteresovani ste da saznate više o tome, detalje možete provjeriti u sljedeći link.