Article image
Carlos Rodrigues
Carlos Rodrigues17/05/2025 20:05
Compartilhe

Microsoft está reescrevendo TypeScript em Go: Insanidade corporativa?

  • #C#
  • #TypeScript
  • #Rust
  • #GoLang
  • #JavaScript

A Microsoft decidiu refazer o TypeScript... mas agora em Go. Sim! Aquele TypeScript que já roda em JavaScript agora vai se render à linguagem do gopher azul.

Mas por que não C++? Por que não C#? Por que não Rust?

Tantas dúvidas na cabecinha do programador afegão médio... Vamos papear um pouco sobre essa situação.

Qual o real motivo?

image

Segundo a Microsoft, um dos maiores obstáculos do TypeScript era seu próprio compilador ter sido feito em... TypeScript! Basicamente, o time percebeu que usar TS para compilar TS não era a idéia mais genial do mundo. O resultado? O compilador era lento, um custo exacerbado de recursos, e tinha grandes dificuldades em processar grandes projetos.

Agora, com o Go, Anders Hejlsberg o goat por trás do Pascal, C# e TS, promete que o novo compilador será até 10 vezes mais rápido e usará menos recursos.

Se você já ficou preso esperando o TypeScript compilar porque seu projeto virou um monstro de 200 dependências, essa pode ser uma boa notícia (ou não), já que os erros agora vão aparecer 10x mais rápido na sua tela.

E por que o GO?

image

A escolha do Go faz sentido se pensarmos em desempenho, concorrência e eficiência.

Ao contrário do JavaScript, que é interpretado, o Go é compilado diretamente para código de máquina e roda em praticamente qualquer arquitetura (amd64, i386, arm64…).

Mas e as outras linguagens?

C#? O golden boy da Microsoft, gera bytecode intermediário e roda em uma máquina virtual, assim como em Java, o que pode adicionar um overhead desnecessário para um compilador.

C++? Sim, seria possível, mas não teria gerenciamento automático de memória, e ninguém queria lidar com segfaults às 3 da manhã.

Rust? Ah, Rust... A linguagem favorita dos programadores masoquistas. Sim, ele seria rápido e seguro, provavelmente até mais rápido que o Go mas ninguém tem tempo para lutar contra o Borrow Checker enquanto tenta compilar TypeScript.

A verdade é que o grande motivo por trás da escolha do Go foi a portabilidade e a simplicidade. O código em Go é mais fácil de manter do que em C++ e não exige tanta ginástica mental quanto o Rust.

Diante disso, sei o que você está pensando: "Mas e o meu Node.js!?" Relaxa, seu backend com Express ainda vai rodar firme e forte... pelo menos por enquanto.

O que isso significa para você?

✔ Seu código TypeScript continua o mesmo. Você ainda vai escrever aquele código elegante que compila para JavaScript. 

✔ O tempo de build será consideravelmente menor e gastará menos recursos. Sua máquina agradece. 

✔ Se você odeia Golang, pode começar a superar isso. Eu hein, já somos poucos, temos que ser mais unidos.

Agora se isso realmente vai mudar o jogo, só o tempo dirá. O novo compilador está previsto para chegar no TypeScript 7.0, e no momento ainda estamos no 5.8.

Então, teremos muito para discutir até lá.

E você, acha que essa mudança é uma jogada genial ou só um delírio corporativo da Microsoft? 💬

Compartilhe
Comentários (2)
Carlos Barbosa
Carlos Barbosa - 25/05/2025 18:57

Excelente ponto! A pergunta é justa, e eu diria que depende.

No meu ponto de vista a Microsoft não está somente reescrevendo o código por capricho. Esse projeto, visa resolver dores reais que a galera sofre há anos: lentidão no build, uso de memória absurdo em projetos grandes, fora aquela espera infinita para o IntelliSense responder no VSCode.

O Golang entra nessa jogada como uma solução mais pragmática. Ele compila rápido, tem garbage collector, é cross-platform e é fácil de manter. A ideia aqui é entregar performance sem sofrimento (pra devs e pra quem mantém o projeto).

Agora se vai valer a pena? Eu diria que só o tempo dirá.

DIO Community
DIO Community - 20/05/2025 10:42

Interessante, Carlos! A Microsoft realmente adora quebrar paradigmas, e essa mudança para Go pode ter um impacto significativo no ecossistema TypeScript. Como você mencionou, a principal motivação parece ser a eficiência e o desempenho. Um compilador mais rápido é algo que toda a comunidade de desenvolvedores TypeScript vai abraçar, especialmente quando lidamos com grandes projetos e a lentidão do compilador atual.

Concordo que o Go faz sentido pela sua simplicidade, desempenho e, especialmente, pela portabilidade. A Microsoft já tem uma forte base de código em Go e essa expertise pode facilitar a transição. Já o C# e C++, como você mencionou, teriam problemas relacionados ao gerenciamento de memória e overhead.

Você acha que vale a pena a mudança ou a Microsoft está apenas tentando reinventar a roda mais uma vez?