A Microsoft anunciou que está trabalhando em uma implementação nativa de TypeScript, com o objetivo de otimizar o compilador e as ferramentas. Essa mudança promete melhorar o tempo de inicialização do editor, reduzir o tempo de build e diminuir o uso de memória. Essa novidade pode trazer grandes benefícios para desenvolvedores que buscam mais eficiência e desempenho em seus projetos.
TypeScript é uma linguagem que se baseia no JavaScript, mas, de acordo com Anders Hejlsberg, arquiteto líder de TypeScript, o JavaScript tem suas limitações. Hejlsberg explica que o TypeScript sempre foi escrito em si mesmo, o que trouxe muitos benefícios, mas também desafios relacionados ao desempenho e à escalabilidade.
Segundo ele, a plataforma de runtime JavaScript é otimizada para uso em interfaces e navegadores, mas não tanto para cargas de trabalho computacionalmente intensivas, como compiladores e ferramentas de sistema.
Um dos problemas mais relatados pelos usuários é a falta de memória, especialmente em projetos grandes. Hejlsberg afirma que a equipe provavelmente atingiu o limite do que pode ser extraído do JavaScript. Para resolver isso, a Microsoft está portando o codebase para Go.
Go foi escolhida por ser a linguagem mais adequada para o que a Microsoft está tentando alcançar. De acordo com Hejlsberg, Go oferece suporte total a código nativo otimizado em todas as plataformas, controle sobre o layout de dados, a capacidade de ter estruturas de dados cíclicas e gerenciamento automático de memória com um coletor de lixo, além de ótimo acesso à concorrência.
Embora uma versão completa dessa **implementação nativa de TypeScript** não esteja prevista para este ano, a nova versão já consegue carregar vários repos TypeScript populares, incluindo VS Code, Playwright, TypeORM e date-fns.
Comparativo de desempenho da Implementação nativa de TypeScript
Os resultados já mostram uma melhora significativa. A compilação do codebase do VS Code leva 77,8 segundos com o TypeScript baseado em JavaScript, enquanto a implementação nativa leva apenas 7,5 segundos – uma melhoria de 10 vezes! O Playwright, por sua vez, leva 1,1 segundo com a nova implementação, em comparação com os 11,1 segundos da versão anterior.
Hejlsberg expressou entusiasmo com as oportunidades que esse aumento de velocidade pode criar. Ele acredita que recursos que antes pareciam fora de alcance agora estão ao alcance.
Com a nova implementação nativa de TypeScript, será possível fornecer listagens de erros instantâneas e abrangentes em todo o projeto, suportar refatorações mais avançadas e permitir insights mais profundos que antes eram muito caros para serem computados.
Essa nova base vai além da experiência do desenvolvedor e permitirá que a próxima geração de ferramentas de IA aprimore o desenvolvimento, alimentando novas ferramentas que aprenderão, se adaptarão e melhorarão a experiência de codificação.
Lançamento e compatibilidade da nova versão
A Microsoft informou que essa implementação nativa será lançada como TypeScript 7.0, quando atingir a paridade com a versão atual do TypeScript (a versão mais recente é a 5.8). A empresa continuará lançando a versão baseada em JavaScript ao longo das versões 6.x e introduzirá mudanças e depreciações para alinhá-la com o codebase nativo.
Alguns projetos poderão migrar para o TypeScript 7 nativo quando ele for lançado, mas outros podem depender de recursos de API, configurações legadas e outras restrições que exigirão o uso do TypeScript 6 baseado em JavaScript.
A Microsoft reconhece o papel fundamental do TypeScript no ecossistema de desenvolvimento JS e manterá o codebase JS na linha 6.x até que o TypeScript 7+ atinja maturidade e adoção suficientes. O objetivo de longo prazo é manter essas versões o mais alinhadas possível, para que os usuários possam atualizar para o TypeScript 7 assim que ele atender aos seus requisitos ou voltar para o TypeScript 6, se necessário.
A empresa planeja compartilhar mais informações nos próximos meses, mas já preparou um FAQ e vai realizar uma sessão de AMA (Ask Me Anything) no Discord do TypeScript no dia 13 de março.
Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.