Python è un linguaggio di programmazione di alto livello.
Dopo un anno di sviluppo, È stato annunciato il rilascio della versione stabile e anche l'inizio della fase di alpha testing del linguaggio di programmazione Python 3.12 e Python 3.13 (rispettivamente). Si dice che questo nuovo ramo di Python 3.12 sarà supportato per un anno e mezzo, dopodiché, per altri tre anni e mezzo, verranno generate correzioni per eliminare le vulnerabilità.
La nuova versione di Python 3.12 presentata include miglioramenti nel flessibilità dell'analisi delle stringhe f. Con questo miglioramento ora molte restrizioni possono essere lasciate da parte, poiché ad esempio ora puoi contenere qualsiasi espressione valida in Python, incluse espressioni multilinea, commenti, barre rovesciate e sequenze di escape Unicode. Inoltre, le stringhe interne ora consentono di riutilizzare le stesse virgolette, ovvero le virgolette doppie ora possono essere riutilizzate all'interno senza dover passare alle virgolette singole.
Di ejemplo:
f"""{f'''{f'{f"{1+1}"}'}'''}"""
Ora è possibile annidare arbitrariamente:
f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
Un altro dei cambiamenti che spicca è il supporto per subinterpreti isolati e blocchi globali separati, che hanno lo scopo di aumentare l'efficienza dell'uso delle risorse nei sistemi multicore, poiché per diversi interpreti all'interno di un processo CPython consente a più interpreti di essere eseguiti contemporaneamente in un processo. Allo stato attuale, la funzionalità è attualmente disponibile solo tramite C-API (il supporto API Python apparirà nel prossimo ramo principale).
Oltre a ciò si evidenzia anche quelloIl contenuto informativo dei messaggi di errore è stato aumentato e la gamma delle eccezioni è stata ampliata, offrendo raccomandazioni per eliminare gli errori tipografici. Ad esempio, ora vengono visualizzati suggerimenti per importare moduli della libreria standard dimenticati e suggerimenti per anteporre "self".
Aggiunta la possibilità di utilizzare il protocollo buffer nel codice Python. Le classi che forniscono un metodo "__buffer__()" possono ora essere utilizzate come tipi che operano direttamente sui dati binari in memoria.
Il modulo sys.monitoring è proposto per il debug e la profilazione, consentendo di monitorare eventi in CPython come chiamate, ritorni di funzioni, esecuzione di righe di codice arbitrarie, eccezioni e transizioni con un sovraccarico minimo.
L'interprete implementa il supporto per il sottosistema delle prestazioni del kernel Linux, che consente di determinare i nomi delle funzioni Python durante la profilazione utilizzando l'utilità prestazioni (in precedenza, solo i nomi delle funzioni C venivano determinati nelle tracce).
Per quanto riguarda i miglioramenti delle prestazioni, viene menzionato questo le ottimizzazioni sono continuate, con quale È stato ottenuto un miglioramento totale delle prestazioni stimato al 5%., è stato anche aggiunto supporto sperimentale per l'ottimizzatore binario BOLT al processo di compilazione, aumentando le prestazioni dell'1-5%, mentre le prestazioni del pacchetto asyncio sono migliorate in modo significativo (alcuni test mostrano un aumento della velocità del 75%).
È stata implementata l'espansione in linea delle comprensioni delle liste, che accelera il lavoro con le comprensioni delle liste fino a due volte (per il codice che utilizza attivamente le comprensioni delle liste, i test hanno mostrato un aumento complessivo delle prestazioni dell'11%).
Per migliorare la sicurezza, implementazioni integrate di Gli algoritmi SHA1, SHA3, SHA2-384, SHA2-512 e MD5 in hashlib sono stati sostituiti con opzioni formalmente verificate dal progetto HACL* (le implementazioni integrate vengono utilizzate solo se OpenSSL non è disponibile).
Del altre modifiche che risaltano:
- Il modulo ha ampliato il supporto per Windows.
- Python implementa la protezione dall'overflow dello stack.
La creazione della classe asyncio.Task è stata velocizzata. - La dimensione degli oggetti Unicode è stata ridotta da 8 a 16 byte.
- Le operazioni con le espressioni regolari re.sub(), re.subn() e re.Pattern sono state velocizzate.
- L'esecuzione dei controlli isinstance() per alcuni protocolli è stata velocizzata da 2 a 20 volte.
- Significativamente (in alcuni test fino al 64%) le funzioni tokenize.tokenize() e tokenize.generate_tokens() sono state velocizzate.
- Il caricamento degli attributi e la chiamata al metodo super() sono stati velocizzati.
- È stata proposta una nuova sintassi di annotazione del tipo più compatta per classi e funzioni generiche.
- Il modulo del browser Web non supporta più i browser meno recenti tra cui Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird e Firefox fino alla versione 36.
- In preparazione per future ottimizzazioni, la rappresentazione interna dei numeri interi è stata modificata.
Ultimo ma non meno importante, come accennato, è iniziato l'alpha testing di Python 3.13, nel quale è apparsa una modalità di compilazione CPython senza blocco globale dell'interprete (GIL, Blocco globale interpreti).
Il ramo Python 3.13 sarà in versione alpha per sette mesi, durante il quale verranno aggiunte nuove funzionalità e corretti bug secondo il nuovo programma di sviluppo, il lavoro su un nuovo ramo inizia cinque mesi prima del rilascio del ramo precedente e quando la versione successiva raggiunge la fase di test alpha.
Successivamente, le versioni beta verranno testate per tre mesi, durante i quali sarà vietata l'aggiunta di nuove funzionalità e tutta l'attenzione sarà rivolta alla correzione dei bug. Durante gli ultimi due mesi prima del rilascio, il ramo sarà nella fase di release candidate, dove avrà luogo la stabilizzazione finale.
Finalmente sì ti interessa saperne di più, puoi controllare i dettagli nel file seguente link