Skip to content
comparisons

Versão do TypeScript em Rust é 3x Mais Rápida, Mas Está Pronta?

A reescrita de um compilador poderia reduzir verificações de tipos lentas a frações de segundo e mudar as expectativas em relação às ferramentas para desenvolvedores. Mas o número de destaque esconde uma pergunta mais difícil: quanta confiança um único benchmark merece?

Stork editorial team
Versão do TypeScript em Rust é 3x Mais Rápida, Mas Está Pronta?

O destaque é a velocidade, mas as letras miúdas importam

A versão independente do TypeScript em Rust concluiu as execuções testadas em cerca de 0,2 a 0,5 segundo, uma melhoria significativa em relação aos 0,6 a 2,2 segundos do Go e aos 6,6 a 13 segundos do JavaScript. Isso equivale a uma aceleração média de 2,5x a 3x em comparação com o Go, e de até 4,4x em cenários com erros em cascata.

É fundamental notar que esse ganho de desempenho vem de uma versão independente em Rust, e não do trabalho oficial de compilador da Microsoft. Em julho, a Microsoft portou o compilador TypeScript para Go, obtendo uma aceleração de cerca de 10x em relação à versão original em JavaScript. A versão em Rust, que muitas vezes utiliza agentes de IA, é uma iniciativa da comunidade construída sobre a versão em Go, e não uma substituição feita pela Microsoft.

Essa distinção é vital: o compilador em Rust é um desenvolvimento impressionante e não oficial. Ele demonstra o que é possível quando uma base de código é reformulada com foco em desempenho, muitas vezes com auxílio de IA.

Um ganho de velocidade chamativo em um único repositório, ainda que grande, como o próprio projeto TypeScript, é um sinal forte. No entanto, não é prova definitiva de que todo projeto TypeScript terá automaticamente os mesmos ganhos expressivos. A tensão central está em saber se esses benchmarks iniciais se generalizam para projetos de tipos e complexidades diversos.

Quatro testes, uma diferença de desempenho marcante

O teste de desempenho usou o repositório oficial do TypeScript no GitHub, com 793 arquivos e aproximadamente 380.000 linhas de código. Esse ambiente de teste robusto permitiu uma comparação abrangente em quatro cenários distintos: - Todos os tipos válidos - Um único erro de tipo simples - Tipo central quebrado com erros em cascata - Tipos recursivos profundos

Os resultados foram contundentes. Para tipos válidos, o JavaScript levou cerca de 7 segundos, o Go 0,7 segundo e o Rust concluiu a tarefa em apenas 0,3 segundo. Quando um tipo central estava quebrado, gerando erros em cascata, o JavaScript registrou 13 segundos, o Go 2,2 segundos e o Rust terminou em meros 0,5 segundo. Esses números evidenciam uma diferença de desempenho consistente e significativa.

No geral, o vídeo apontou o Go como cerca de 9 a 10 vezes mais rápido que o JavaScript. O Rust, por sua vez, entregou aproximadamente 24 vezes a velocidade do JavaScript e quase três vezes a velocidade do Go. Embora os tempos arredondados e o uso de uma única base de código limitem a precisão absoluta, a hierarquia de desempenho é inegável.

A portabilidade do TypeScript para Go feita pela Microsoft em julho trouxe ganhos substanciais. No entanto, a implementação seguinte em Rust demonstra um salto ainda maior, em particular em cenários complexos de tratamento de erros. Os dados mostram claramente um novo patamar de desempenho.

Por que o resultado do Rust merece uma análise mais atenta

As cargas de trabalho de compiladores representam um teste exigente para qualquer linguagem, mesmo Go ou Rust. A verificação de tipos envolve relações recursivas complexas, a construção de grandes grafos de dependências e a geração de diagnósticos que podem se multiplicar exponencialmente quando um tipo central está quebrado. Essa complexidade explica por que o compilador JavaScript levou até 13 segundos no cenário de "tipo central quebrado".

A vantagem de desempenho do Rust sobre o Go, com média de 2,5x a 3x mais rápido, provavelmente decorre de diferenças fundamentais no gerenciamento de memória e na sobrecarga de runtime. As abstrações de custo zero do Rust, o layout de memória explícito e a ausência de coletor de lixo podem minimizar o comportamento de alocação e reduzir falhas de cache, oferecendo uma vantagem concreta em tarefas limitadas pela CPU, como a compilação.

O surgimento de uma versão do TypeScript em Rust, viabilizada pelo desenvolvimento assistido por IA, evidencia uma tendência significativa. Bases de código grandes e já existentes, com extensas suítes de testes, como o repositório do TypeScript no GitHub, são alvos ideais para a tradução iterativa por agentes de programação. Essa abordagem pode gerar rapidamente versões funcionais, como se viu em projetos como o tsrs; para saber mais, leia Introducing tsrs: a Port of TypeScript to Rust.

No entanto, passar nos testes existentes não garante automaticamente a compatibilidade completa nem identifica diferenças sutis de comportamento. Embora a portabilidade orientada por IA seja poderosa, a validação rigorosa conduzida por pessoas continua sendo essencial para assegurar a paridade funcional e manter a integridade da implementação original. A velocidade é inegável, mas a estabilidade de longo prazo exige uma análise cuidadosa.

Gostando do artigo? Receba um assim na sua caixa de entrada toda manhã.

um e-mail por dia · cancele em dois cliques · sem rastreadores de terceiros

Vencer um benchmark não é o mesmo que ser um substituto direto

Vencer um benchmark não é o mesmo que ser um substituto direto. Antes de adotar uma versão em Rust, os desenvolvedores devem verificar vários fatores críticos. É fundamental avaliar a paridade de linguagem e de API do compilador com a implementação oficial do TypeScript, garantindo integração perfeita com as ferramentas de editor, os sistemas de build e a saída de diagnósticos existentes. O comportamento em seus próprios projetos é o teste definitivo.

Realize um teste local justo, comparando opções de compilador idênticas nas versões oficial e em Rust. Inclua execuções de compilação limpa e incremental, monitore o uso de memória e avalie o desempenho em cargas de trabalho de CI representativas, e não apenas em algumas execuções cronometradas. Essa abordagem abrangente revela a real prontidão para produção.

Os resultados impressionantes desta versão em Rust, em especial a velocidade 3x maior que a do Go, elevam o patamar de desempenho dos compiladores. Essas implementações alternativas pressionam o ecossistema em geral a inovar, mostrando como o código nativo otimizado pode melhorar drasticamente a experiência do desenvolvedor. Embora os números sejam convincentes, a prontidão para produção depende de confiança e de compatibilidade total.

Ignore esta versão em Rust se sua principal preocupação for a estabilidade imediata e a paridade total de recursos com o compilador oficial TypeScript da Microsoft. Até que a integração abrangente e o suporte do ecossistema amadureçam, a versão em Rust vencedora do benchmark continua sendo uma prova de conceito convincente, e não um substituto direto para a maioria dos ambientes de produção.

Perguntas frequentes

O compilador TypeScript da Microsoft agora é escrito em Rust?

Não. O vídeo compara uma versão independente em Rust com o compilador JavaScript existente e a implementação em Go da Microsoft.

Quanto mais rápida foi a versão em Rust nos testes do vídeo?

No repositório TypeScript testado, a versão em Rust foi, em média, cerca de três vezes mais rápida que a versão em Go e cerca de 24 vezes mais rápida que a versão em JavaScript.

O que o benchmark testou?

Foram medidos quatro casos no repositório TypeScript: tipos válidos, um erro de tipo simples, erros em cascata em tipos centrais e tipos profundamente recursivos.

As equipes devem substituir o compilador TypeScript pela versão em Rust?

Não com base apenas nestes resultados. As equipes devem verificar a compatibilidade, o suporte de ferramentas e o desempenho em seus próprios projetos antes de fazer a troca.

Found this useful? Share it.

Para criadores de ferramentas

Sua ferramenta está faltando nesta comparação?

Adicione uma entrada Patrocinada, claramente identificada, ao lado das ferramentas comparadas aqui, nos 8 idiomas em que publicamos. Verificamos o encaixe antes do pagamento. Ou sugira grátis e decidimos pelo mérito.

Adicionar sua ferramentaSugerir grátisEntradas patrocinadas são identificadas e nunca mudam nossa classificação

Para builders

Esta página está trabalhando para a ferramenta de outra pessoa.

Agentes de IA leem. Compradores chegam nela. Ela responde em oito idiomas e via MCP. Sua ferramenta pode ter uma assim — no ar em 24 horas.