TypeScript Além do JavaScript - A Revolução Silenciosa Impulsionada por Go
Antes de mergulhar no assunto, quero compartilhar uma mudança aqui no blog! A partir de agora, vou publicar majoritariamente em português. Entre 2024 e início de 2025, experimentei escrever em inglês para alcançar um público mais amplo, mas percebi que minha verdadeira vocação está em criar conteúdo para os brasileiros, afinal, é aqui que vivo e conheço melhor.
Os posts em inglês ainda aparecerão ocasionalmente, mas o português será minha prioridade. Também vale mencionar que o ritmo de publicações vai diminuir um pouco, essa sequência de posts durante o feriado foi uma exceção, não a regra.
Mas vamos ao que interessa: O TypeScript é uma linguagem de programação de código aberto desenvolvida pela Microsoft baseada em JavaScript que transpila para o JavaScript, só que adiciona tipagem estática opcional à linguagem. O que força o programador a manter boas práticas, por mais que eu ache que não faça tanta diferença, afinal no final tudo vira JavaScript certo?
Bom, parece que não é bem assim. O TypeScript está passando por uma fase de transformação interessante. O que começou apenas como um JavaScript com tipagem está cada vez mais ganhando vida própria. E olha só que curioso: recentemente a equipe decidiu portar toda a base de código para Go! Isso não é apenas uma mudança técnica qualquer, mas um sinal de que o TypeScript está começando a trilhar seu próprio caminho, se distanciando um pouco daquela relação de dependência total com o JavaScript.
Na verdade, isso me fez repensar aquela ideia de que “no final tudo vira JavaScript”. Talvez o TypeScript esteja dando os primeiros passos para se tornar algo maior, com características próprias e uma identidade que vai além de ser apenas uma ferramenta para evitar bugs no JavaScript. É como se a linguagem estivesse amadurecendo e buscando seu próprio espaço no ecossistema de desenvolvimento.
Da mesma forma que o C++ começou como um C com Classes o typescript começou com JavaScript com tipagem estática. C++ antes e pós 2008 são completamente irreconhecíveis, a stl (standard template library) mudou drasticamente o andar da carruagem (para melhor na minha opinião). Agora nós da nova geração estamos tendo a oportunidade de ver isso ao vivo, e isso é incrível.
A decisão de adotar Go não foi algo feito da noite para o dia. Como a própria equipe do TypeScript explica: “We extensively evaluated many language options, both recently and in prior investigations.”. Eles não apenas consideraram uma solução, mas testaram várias abordagens: “We also considered hybrid approaches where certain components could be written in a native language, while keeping core typechecking algorithms in JavaScript. We wrote multiple prototypes experimenting with different data representations in different languages, and did deep investigations into the approaches used by existing native TypeScript parsers like swc, oxc, and esbuild.”.
Segundo o Ryan Cavanaugh mantenedor do TypeScript o aspecto mais importante é que precisamos manter a nova base de código o mais compatível possível, tanto em termos de semântica quanto em termos de estrutura de código. " We expect to maintain both codebases for quite some time going forward. Languages that allow for a structurally similar codebase offer a significant boon for anyone making code changes because we can easily port changes between the two codebases. In contrast, languages that require fundamental rethinking of memory management, mutation, data structuring, polymorphism, laziness, etc.“.
Mas aí você me pergunta: sera que vale mesmo apena estudar TypeScript em 2025? Bom, se você é um dev web e não da a minima para performance e tem que escolher entre TypeScript e JavaScript, nesse cenário certamente o TypeScript ganha, mas eu pessoalmente não sou muito entusiasta quando o assunto é TypeScript, se algum dia ele deixar de ser uma espécie de “Framework JavaScript” aí sim eu darei outra chance, mas até la eu prefiro continuar no meu Java.
Conclusão
A evolução do TypeScript para uma implementação em Go representa um momento decisivo na história dessa linguagem. O que nasceu como uma simples extensão do JavaScript com tipagem estática agora dá sinais de que pode se tornar algo muito maior. Essa mudança não é apenas uma curiosidade técnica, mas um possível indicativo do futuro claramente promissor da linguagem.
O que podemos ver com a linguagem C++ no período do inicio dos anos 2000 até o ano de 2008 foi introduzido a stl (standard template library), o que mudou significativamente a linguagem, estou ansioso para ver o que virá de novo no TypeScript, aguardaremos os próximos capítulos.