Attualmente, l'ultima versione stabile disponibile di Python è la 3.12.1, nella prossima major realease il noto linguaggio di programmazione includerà una novità particolarmente rilevante, una delle più importanti nella storia della creatura di Guido van Rossum. Python 3.13 disporrà infatti di un compilatore JIT (Just In Time) a beneficio delle prestazioni.
Tale feature riguarderà nello specifico CPython che è l'implementazione di default di Python basata sul linguaggio C. Il compilatore JIT sarà però una dotazione opzionale e dovrebbe diventare disponibile entro l'inizio di ottobre 2024 insieme, appunto, alla versione 3.13 del progetto.
I vantaggi del compilatore JIT
Un compilatore JIT ha il compito di tradurre il codice sorgente nativo in linguaggio macchina durante l'esecuzione di un programma. Quindi a runtime. La sua principale caratteristica riguarda il fatto di effettuare la traduzione in modo incrementale, cioè subito prima che il codice venga eseguito. Viene così superato l'approccio, meno performante, basato sulla traduzione del codice per intero prima della fase di esecuzione.
Nella compilazione JIT l'output generato in tempo reale è specifico per l'architettura del processore di rifermento. Si ha così una maggiore ottimizzazione a livello di prestazioni. Il compilatore può inoltre variare il proprio comportamento in base alle condizioni in cui viene eseguito un determinato programma.
Per queste ragioni i compilatori JIT vengo spesso utilizzati negli ambienti di linguaggi come Java e, più precisamente, nelle macchine virtuali di quest'ultimo.
Python e compilazione JIT
Per quanto riguarda invece Python, fino ad oggi la compilazione dinamica JIT è stata supportata tramite l'uso di package esterni come Numba e sfruttando l'infrastruttura LLVM che è scritta in C++. Stando alle anticipazioni disponibili il compilatore JIT di Python 3.13 supporterà tutte le principali piattaforme tra cui Windows, macOS e Linux. Sia nelle architetture x86 che ARM64.
Alcuni benchmark avrebbero evidenziato miglioramenti di prestazioni fino al 47% ma, verosimilmente, in fase di produzione tali percentuali dovrebbero risultare più basse ma comunque migliori rispetto al solo processo di interpretazione del codice.