È disponibile la prima beta di Python 3.13. Nuova versione del linguaggio di programmazione che tra le principali novità presenta un compilatore JIT (Just-In-Time) a livello sperimentale e la possibilità di disattivare GIL (Global Interpeter Lock) per il free threading. Come è facile intuire, in entrambi i casi si tratta di feature che dovrebbero influire positivamente sulle performance delle applicazioni.
Il compilatore JIT
CPython, che funge da implementazione di base per lo sviluppo del linguaggio Python, viene scritto in C ma non brilla particolarmente per quanto riguarda le prestazioni. Da qui l'esigenza di trovare una soluzione da implementare a livello di core. Il compilatore JIT introdotto con questo aggiornamento viene definito "basilare". Inoltre, almeno per il momento, non è stato abilitato in modalità predefinita.
Python 3.13 Beta: The New Features and Fixes Coming Soonhttps://t.co/L5IaG3TTML
— Python Weekly 🐍 (@IntPyDiscu) May 12, 2024
Di fatto oggi il codice Python viene compilato in bytecode poi interpretato a runtime. Il compilatore JIT, invece, migliora quanto fatto con la release 3.12 con cui venne introdotta la suddivisione delle istruzioni in operazioni più piccole da ottimizzare singolarmente. In Python 3.13 viene aggiunta la compilazione statica di queste ultime, in questo modo dovrebbero essere evitati gli overhead che finivano per impattare sulle performance.
In ogni caso, prima di una possibile abilitazione di default dovranno essere migliorati alcuni aspetti. Il più importante prevede un miglioramento delle prestazioni di almeno il 5%. Diversamente la sperimentazione potrebbe concludersi con un nulla di fatto e si tratterebbe di un traguardo ancora ben lontano dall'essere raggiunto.
GIL diventa opzionale in Python 3.13
La disabilitazione facoltativa di GIL è stata introdotta a favore della concorrenza. Così come il compilatore JIT infatti, anche quest'ultima dovrebbe garantire velocità più elevate in fase di esecuzione. Il Global Interpeter Lock si rivela particolarmente impattante in ambienti che sfruttano CPU multi-core, si pensi per esempio ai progetti connessi allo sviluppo di reti neurali. Questo perché in caso di thread multipli esso impedisce che tali processi possano eseguire codice Python simultaneamente.
Se tutto dovesse andare come previsto dagli sviluppatori del linguaggio, l'aggiornamento 3.13 dovrebbe arrivare entro ottobre 2024. Questo dopo quattro versioni beta e due release candidate.