Microsoft ha annunciato un progetto innovativo denominato ‘Corsa’, volto a migliorare significativamente le prestazioni di TypeScript attraverso la migrazione del suo compilatore e degli strumenti linguistici al linguaggio di programmazione Go. Questa iniziativa promette un incremento di velocità fino a 10 volte e una sostanziale riduzione dell’utilizzo della memoria, offrendo agli sviluppatori un’esperienza più fluida ed efficiente.

Nonostante il successo di TypeScript negli ultimi dieci anni, l’implementazione basata su JavaScript ha mostrato limiti in termini di prestazioni, come tempi di compilazione lenti ed errori di memoria. Anders Hejlsberg, architetto capo di TypeScript e technical fellow di Microsoft, ha sottolineato che si è probabilmente raggiunto il limite di ciò che si può ottenere con JavaScript, rendendo necessaria una nuova strategia per superare queste sfide.

La traduzione diretta del codice di TypeScript in Go, effettuata file per file e funzione per funzione, ha portato a miglioramenti notevoli. Ad esempio, la compilazione del codice di Visual Studio Code, composto da 1,5 milioni di linee, è passata da 77,8 secondi a 7,5 secondi, evidenziando un incremento di velocità superiore a 10 volte. Inoltre, l’utilizzo complessivo della memoria è stato ridotto di circa la metà rispetto alla versione precedente.

Questa implementazione nativa offrirà agli sviluppatori:​

  • Miglioramenti nella produttività: Avvii dell’editor più rapidi e tempi di build significativamente ridotti.​
  • Funzionalità avanzate: Elenchi di errori completi e immediati su un intero progetto, supporto per refactoring più sofisticati e approfondimenti più dettagliati precedentemente troppo costosi da calcolare.​

La decisione di utilizzare Go per questa migrazione è stata influenzata dalla somiglianza strutturale tra Go e l’implementazione esistente in JavaScript. Questa affinità facilita la transizione per i contributori già familiari con la base di codice attuale, permettendo loro di navigare nel nuovo codice con maggiore facilità. Matt Pocock, esperto di TypeScript, ha evidenziato che i pattern di programmazione di Go assomigliano strettamente alla struttura del codice esistente di TypeScript, rendendo la migrazione più agevole.

Microsoft prevede di rilasciare una versione preliminare del compilatore TypeScript nativo, capace di eseguire il type checking da linea di comando, entro la metà del 2025. Una soluzione completa per la build dei progetti e un servizio linguistico dovrebbero essere disponibili entro la fine dell’anno. Il progetto ‘Corsa’ sarà rilasciato come TypeScript 7.0, mentre la codebase basata su JavaScript sarà mantenuta fino a quando la versione 7+ non raggiungerà una maturità e un’adozione sufficienti.

Per coinvolgere la comunità degli sviluppatori, Microsoft ha organizzato una sessione “Ask Me Anything” (AMA) nel canale Discord della comunità TypeScript il 13 marzo alle 10:00 PDT, offrendo l’opportunità di discutere dettagli e implicazioni di questo significativo aggiornamento.

Di Fantasy