Python 3.12, l’ultima versione stabile del popolare linguaggio di programmazione, sarà disponibile dal 2 ottobre 2023.
Questa versione introduce diverse novità e miglioramenti, tra cui: messaggi di errore più chiari; miglioramenti delle prestazioni; l’introduzione degli oggetti Immortal, i sotto-interpreti; modifiche alle stringhe F; modifiche relative ai tipi e alle annotazioni dei tipi; la rimozione di alcuni moduli obsoleti o non più supportati (imp, parser, platform e audioop); miglioramenti nelle implementazioni dei tipi (le tuple immutabili, i dizionari ordinati, i set congelati e le liste circolari).
Python 3.12: tutto quello che devi sapere sulla nuova versione
Python 3.12 presenta in primis un notevole miglioramento dei messaggi di errore. Questa nuova versione, infatti, fornisce messaggi di errore più precisi e utili, suggerendo possibili soluzioni per gli errori più frequenti. Inoltre, i messaggi di errore indicano i moduli della libreria standard che potrebbero essere necessari, facilitando la risoluzione dei problemi da parte degli sviluppatori.
La nuova versione stabile offre anche un notevole miglioramento delle prestazioni. Sebbene l’aumento di velocità non sia così evidente come quello tra Python 3.10 e Python 3.11, ci sono comunque dei vantaggi significativi. Per esempio, è stata implementata l’inlining delle comprensioni, che in alcuni casi può raddoppiare la velocità di esecuzione delle comprensioni. Inoltre, il modulo asyncio ha beneficiato di una serie di ottimizzazioni, che in alcuni test hanno mostrato un incremento di prestazioni superiore al 75%.
Python 3.12 introduce il concetto di oggetti Immortal. Si tratta di oggetti che non vengono mai distrutti dal garbage collector, in quanto sono sempre necessari al sistema e hanno un numero di riferimenti fisso. Questa nuova caratteristica può aiutare a migliorare l’efficienza e le prestazioni dei programmi Python, in particolare quando si lavora con dati persistenti o condivisi tra i sotto-interpreti.
La versione 3.12, infatti, introduce il concetto di sotto-interpreti. Si tratta di istanze isolate dell’interprete Python che possono eseguire codice in parallelo, senza il limite del Global Interpreter Lock. Questa caratteristica può aumentare notevolmente le prestazioni dei programmi Python, soprattutto quelli che sono progettati per sfruttare i processori multi-core.
La versione stabile introduce alcuni cambiamenti alle stringhe F. Queste stringhe sono ora più flessibili, permettendo di usare doppi apici annidati. Questo cambiamento può rendere più semplice per gli sviluppatori scrivere e leggere il codice che usa le stringhe F. Python 3.12 introduce anche modifiche ai tipi e alle annotazioni dei tipi. La nuova versione introduce la parola chiave override e una nuova sintassi per i parametri di tipo o di classi e funzioni generiche. Queste modifiche possono aiutare gli sviluppatori a scrivere codice più sicuro e chiaro.
Il modulo pathlib ora dispone di un metodo walk, che permette di esplorare gli alberi delle directory in modo semplice e intuitivo. Questa nuova funzionalità può semplificare il lavoro con i file system nei programmi Python. Python 3.12 supporta anche la possibilità di monitorare chiamate, ritorni, linee, eccezioni e altri eventi utilizzando la strumentazione. Questa funzione può essere molto utile per il debugging e la messa a punto delle prestazioni.
Tuttavia, la nuova versione di Python non è solo aggiunte e miglioramenti. Sono stati rimossi diversi moduli, tra cui async ads e asyncore, che sono stati sostituiti da asyncio. Sono stati rimossi anche gli alias deprecati del pacchetto di test unitari.