Home Intelligenza Artificiale Un programmatore porta il compilatore TypeScript in Rust grazie all’AI

Un programmatore porta il compilatore TypeScript in Rust grazie all’AI

0
2
Un programmatore porta il compilatore TypeScript in Rust grazie all'AI

Con un investimento di circa 24.000 dollari, il developer e popolare YouTuber Theo Browne ha utilizzato agenti di intelligenza artificiale per portare il compilatore TypeScript di Microsoft nel linguaggio Rust. L’obiettivo era testare se fosse possibile realizzare un porting di questo tipo. Il risultato non solo ha prodotto un’implementazione funzionante, ma il codice risultante potrebbe aprire la strada a ambienti più efficienti in termini di memoria per gli agenti AI.

Browne sostiene che la sua versione in Rust funziona due volte più velocemente rispetto alla riscrittura ufficiale di TypeScript in Go (v7) di Microsoft, rilasciata all’inizio di quest’anno, e ben 12,5 volte più velocemente rispetto alla versione precedente (v6). È un risultato notevole, considerando che Browne afferma di non aver nemmeno esaminato il codice.

Un compito che sembrava impossibile

Il progetto TS_Rust, come evidenziato da Browne in una presentazione video, sarebbe stato impraticabile anche solo all’inizio di quest’anno. Tuttavia, con l’evoluzione rapida dei modelli di intelligenza artificiale, compiti una volta ritenuti impossibili stanno diventando realizzabili.

Il compilatore TypeScript, il controllo dei tipi e il linguaggio server, che offre funzionalità come il controllo degli errori e la completamento automatico nei vari editor, sono stati tutti portati nel nuovo linguaggio. Browne ha speso più di 400.000 dollari in token API equivalenti usando i modelli GPT-5.6 Sol e GPT-6 Astra di OpenAI, che ha portato il progetto a circa l’84% di compatibilità prima che i modelli facessero fatica a completare il lavoro rimanente.

Quando Anthropic ha rilasciato Claude Opus 5.5 il mese scorso, Browne ha ripreso il progetto e, con sua sorpresa, il nuovo modello ha prodotto un’implementazione funzionante, consumando circa 24.000 dollari in token attraverso le sue sottoscrizioni a Claude. L’implementazione risultante ha superato i test di conformità di TypeScript con una precisione vicina al 100%.

Browne attribuisce questo successo inaspettato alla potenza maggiore del modello Claude 5.5, che ha anche cambiato strategia per ottenere risultati più velocemente. Invece di tentare un traduzione diretta da JavaScript a Rust, il modello ha portato l’implementazione di TypeScript in Go a Rust, copiando alcuni bug dall’originale.

Agenti alimentati da V8

Oltre all’aspetto innovativo, la versione di TypeScript di Browne potrebbe fornire un vantaggio pratico eliminando la necessità di ambienti di lavoro pesanti, come macchine virtuali e contenitori Docker. Questo è un compito che l’implementazione Go di Microsoft non riesce a gestire con la stessa efficacia, secondo Browne.

Con modelli di intelligenza artificiale più potenti in arrivo, i costi di inferenza stanno diminuendo drasticamente. Browne avverte che i costi computazionali necessari per supportare gli ambienti di sviluppo diventeranno presto la parte più costosa del lavoro.

Un compilatore TypeScript basato su Rust potrebbe consentire di eseguire alcuni carichi di lavoro agentici all’interno del motore V8 di Google, riducendo la necessità di un contenitore o di una VM. Cloudflare, ad esempio, già isola più ambienti utente utilizzando il runtime JavaScript V8 di Google, risparmiando centinaia di megabyte per ogni ambiente cliente.

Infine, il TypeScript stesso, privato delle sue annotazioni di tipo, gira senza problemi all’interno di V8, ma l’implementazione TypeScript di Microsoft in Go non è adatta proprio perché il garbage collector di Go deve essere incluso nel runtime tramite WebAssembly. Al contrario, Rust non ha bisogno di un garbage collector e si compila più efficientemente con WebAssembly, aprendo la strada a un ambiente agentico leggero.

Browne si mostra ottimista riguardo all’intelligenza artificiale e all’ingegneria del software, affermando: “Questi tipi di progetti YOLO non dovrebbero essere affatto possibili. Non dovrebbero nemmeno superare i test, tanto meno funzionare come un sostituto diretto di TypeScript.”

LEAVE A REPLY

Please enter your comment!
Please enter your name here