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?
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?
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? 💬