Executando verificação de segurança...
4

TypeScript 10x Mais Rápido: O Futuro da Experiência de Desenvolvimento

No dia 11 de março de 2025, Anders Hejlsberg, arquiteto-chefe do TypeScript, anunciou um marco revolucionário para a linguagem: um TypeScript 10x mais rápido. Esse avanço promete transformar a experiência de desenvolvimento, especialmente para projetos de grande escala, onde o desempenho do TypeScript tem sido um desafio. O anúncio detalha os esforços para criar uma versão nativa do compilador TypeScript, que trará melhorias significativas em velocidade, uso de memória e eficiência.

O Problema Atual

TypeScript é amplamente amado por sua capacidade de melhorar a produtividade dos desenvolvedores, especialmente em grandes codebases. No entanto, à medida que os projetos crescem, o tempo de carregamento e verificação do TypeScript pode se tornar um gargalo. Desenvolvedores frequentemente enfrentam longos tempos de inicialização do editor e builds lentos, o que impacta diretamente a produtividade. Além disso, ferramentas modernas, como assistentes de IA, exigem respostas rápidas e acesso a grandes volumes de informações semânticas, algo que o TypeScript atual nem sempre consegue fornecer de forma eficiente.

A Solução: TypeScript Nativo

A equipe do TypeScript está trabalhando em uma versão nativa do compilador TypeScript, escrita em Go. Essa nova implementação promete reduzir drasticamente o tempo de build, melhorar a inicialização do editor e diminuir o uso de memória. Os primeiros testes mostram resultados impressionantes:

  • VS Code: Tempo de build reduzido de 77,8s para 7,5s (10,4x mais rápido).
  • Playwright: De 11,1s para 1,1s (10,1x mais rápido).
  • TypeORM: De 17,5s para 1,3s (13,5x mais rápido).

Esses números são apenas o começo. A equipe espera que a maioria dos projetos veja melhorias na ordem de 10x em velocidade de verificação e builds.

Benefícios para Editores

A maior parte do tempo dos desenvolvedores é gasto em editores, e a performance nessa área é crítica. Com a nova implementação nativa, o tempo de carregamento de projetos grandes no editor será reduzido significativamente. Por exemplo, o tempo de carregamento do projeto VS Code no editor caiu de 9,6s para 1,2s, uma melhoria de 8x. Além disso, operações como autocompletar, navegação de código e busca de referências serão muito mais rápidas.

Roadmap e Compatibilidade

A equipe do TypeScript está planejando uma transição suave para a nova versão nativa. O TypeScript 6.x continuará sendo desenvolvido com base no código JavaScript atual, enquanto o TypeScript 7.0 será a primeira versão baseada na implementação nativa. A equipe garante que a compatibilidade com projetos existentes será mantida, e os desenvolvedores poderão migrar para a nova versão quando estiverem prontos.

Próximos Passos

Nos próximos meses, a equipe compartilhará mais detalhes sobre o desempenho, a nova API do compilador e a integração com o Language Server Protocol (LSP). Além disso, uma sessão de AMA (Ask Me Anything) está marcada para o dia 13 de março no Discord da comunidade TypeScript, onde os desenvolvedores poderão tirar dúvidas e dar feedback.

Impacto no Ecossistema

Essa melhoria de desempenho não apenas beneficia desenvolvedores individuais, mas também abre portas para novas ferramentas e experiências de desenvolvimento. Com a capacidade de processar grandes volumes de dados semânticos em tempo real, o TypeScript nativo permitirá a criação de ferramentas de IA mais avançadas e integradas, elevando a produtividade a um novo patamar.

Conclusão

O anúncio do TypeScript 10x mais rápido é um marco emocionante para a comunidade de desenvolvimento. Com ganhos significativos em velocidade, eficiência e experiência do usuário, o TypeScript está se preparando para continuar sendo uma das linguagens mais poderosas e versáteis do mercado.

Carregando publicação patrocinada...
1
2

TypeScript sempre foi compilado. Alguns preferem chamar de transpilado porque transforma um código de mais alto nível em um código em outras linguagem que é de mais alto nível também. Depois que você escreve o código você chama o tsc que é TypeScript Compiler.

Tudo vai continuar como antes, se ninguém te falasse nada você quase nem perceberia (pelo menosessa é a ideia), a não ser que pelo menos agora tem que chamar tsgo para compilar mais rápido. O novo compilador ainda vai transpilar de TS para JS, seu código final não será nativo, não será Go, não muda nada. Se tudo correr bem ele dará exatamente a mesma saída de antes com a mesma entrada, só levará 6 segundos em vez de 60 para um projeto gigantesco. Paraa a maioria dos projetos ele passará de alguns décimos para pouco menos de 1 décimo de segundo.

O único objetivo desse port (já falo mais sobre isso) é tornar a compilação mais rápida, nada mais. Tanto que eles escolharam Go para ter que automatizar parte da mudança de código e o que precisaria fazer manual fosse parecido com JS/TS, assim daria menos trabalho e correria menos riscos.

Eles optaram por fazer um port que é só a mudança mais simples que dá para fazer de uma linguagem para outra. Não é uma reescrita do compilador, não é objetivo tornar o compilador melhor, melhor arquitetado, ter um código mais bem feito, ou qualquer coisa parecida. Por isso escolhram Go, uma linguagem que pode dar mais performance que JS, seja porque o compilador passa ser nativo, seja porque permite usar threads e isso é boa parte do ganho da performance.

JS não é adequada para uma quantidade significativa de problemas, mesmo que muitas pessoas usem assim. E a decisão errada pode partir até mesmo dos maiores gênios da comnputação. Se bem que eu não conheço todo o processo de escolha de começar fazer o compulador em JS e depois adotando TS. Pode ter sido uma decisão política acertada, mas que tinha um prazo de validade. Do ponto de vista de engenharia pura eu tenh quase certeza que seria melhor desde o início usar C# para o compilador. Eu sei que isso traria alguma resistência da comunidade de JS que já tem por ser Microsfot, ou por outros motivos, alguns que eu mesmo tenho ressalvas.

Linguagens de script são adequadas para fazer scripts, as pessoas usam para outras coisas de teimosas ou por ignorância, até porque dáp ra fazer outras coisas com elas, mas tecnicamente não é o mais adequado, você vai pagar algum preço, que pode não ser problema para você. Só que em muitos casos passa ser problema mais para frente, é uma dívida técnica que você contraiu e vai pagar com juros em algum momento.

Não faria sentido portar para C# agora, só compensaria e eu tenho certeza que o fariam, porque provavelmente daria um resultado ainda maior de ganho, se a decisão tivesse sido de reescrever o compilador.

C++ tem dificuldades de gerenciamento de memória, então isso já seria um pouco improdutico. O mesmo motivo de não terem adotado C# (que não tem a dificuldade já citada), vale para C++, não são linguagens tão parecidas com JS/TS que é como o compilador foi escrito originalmente. Em C# teria alguns ganhos, em C++ teria outros, mas custaria bem mais caro fazer. Poderiam pensar em Rust, até mesmo Java, mas todos possuem o mesmo problema.

O compilador do C# originalmnente foi escrito em C++, despois ele foi reescrito em C# com nova arquitetura, que é considerado por muito "o estado da arte" em compiladores, e ficou mais rápido que o compilador escrito em C++, mesmo ele tendo muito mais features que antes.

Go foi a escolha pragmática, a melhor decisão de engenharia depois que politicamente adotou-se a estratégia de port e não reescrita. Eu acho um desperdício, preferia a reescrita adotando técnicas semelhantes ao do atual compilador de C#. Todas as linguagens devriam fazer algo parecido.

Isso reforça e "comprova" o que eu sempre falei, Go é a linguagem que gera código nativo quando a pessoa acha que a linguagem de script não está dando conta da performance.

Veja mais: https://www.tabnews.com.br/FlavioEscobar/diferenca-entre-compilador-e-interpretador.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

0
0