Python, un linguaggio di programmazione dinamico, ha sempre dovuto affrontare sfide per aumentare la velocità e l'efficienza. Tuttavia, i recenti sviluppi presentati al PyCon 2023 di Salt Lake City, nello Utah, dimostrano il futuro in evoluzione di Python, promettendo implementazioni più veloci ed efficienti. La prossima versione di Python 3.12 introdurrà una serie di miglioramenti, mostrando un cambiamento rivoluzionario nell'ottimizzazione del linguaggio.
Mark Shannon, uno dei principali collaboratori di Python presso Microsoft, e altri relatori alla PyCon 2023 hanno fatto luce sulle numerose iniziative volte a ridurre l'uso della memoria di Python, ad accelerare l'interprete e a ottimizzare il compilatore. Ad esempio, l'intestazione degli oggetti di Python è stata ridotta da 208 byte a 96 byte, il che significa che è possibile mantenere più oggetti in memoria migliorando la localizzazione nella cache.
La specializzazione adattiva è un'altra novità fondamentale introdotta in Python 3.12. Secondo Brandt Bucher, sviluppatore di Python, le nuove istruzioni adattive dei bytecodes di Python 3.11 saranno ulteriormente migliorate nell'ultima versione. Queste istruzioni possono sostituire le versioni specifiche dei tipi di Python in fase di esecuzione, semplificando così l'interprete e velocizzando l'intero processo. I miglioramenti di Python 3.12 includono ulteriori opcode di specializzazione adattivi e una specializzazione semplificata degli opcode.
La concorrenza è un problema di lunga data per Python, e Python 3.12 mira a risolvere questa sfida con l'introduzione di sottointerpreti e di un blocco globale dell'interprete (GIL) per ciascun interprete. L'intervento di Eric Snow, sviluppatore del core python, ha esplorato questa soluzione, che promuove un migliore utilizzo di più core con meno compromessi imposti da thread, async o multiprocessing. Invece di rimuovere il GIL, il meccanismo del subinterprete consente a più interpreti di essere eseguiti insieme all'interno di un singolo processo, con ogni interprete dotato del proprio GIL. Inoltre, Python 3.12 introdurrà nella sua libreria standard un modulo minimo chiamato interpreti, che consentirà ai programmatori di utilizzare efficacemente i sottointerpreti.
Questi progressi non solo accelerano le prestazioni di Python, ma contribuiscono anche a rendere il linguaggio a prova di futuro per gli anni a venire. Una delle questioni affrontate a questo proposito è la pulizia e l'astrazione delle numerose API C di CPython esposte da Victor Stinner, sviluppatore principale di Python. Mantenere private le API pubbliche garantisce una minore interazione diretta con gli interni di CPython e riduce le dipendenze da potenziali cambiamenti di versione. È nato anche un progetto di terze parti, HPy, che offre un'API C più stabile, efficiente e astratta per Python in tutte le versioni, a beneficio di progetti come NumPy e ultrajson.
Questi miglioramenti rivoluzionari di Python 3.12 non solo promettono implementazioni più veloci, efficienti in termini di memoria e adattabili, ma aprono anche le porte a miglioramenti prima impossibili. Questo rilascio può influenzare in modo significativo il panorama variegato delle piattaforme di sviluppo e dei linguaggi di programmazione, compresa la piattaforma AppMaster che consente di creare facilmente applicazioni web, mobili e backend attraverso le soluzioni no-code. Abbracciando un futuro in evoluzione, Python è destinato a rivoluzionare le sue prestazioni e la sua efficienza, offrendo vantaggi sostanziali agli sviluppatori di tutto il mondo.