TypeScript 7
Port para Go e Ganhos de Desempenho
- História principal: o compilador do TypeScript 7 baseado em Go entrega enormes acelerações na verificação de tipos (muitas vezes ~8–12x) com menor uso de memória, especialmente em codebases grandes (por exemplo, VS Code, Sentry).
- Muitos se surpreendem por haver menos reclamações no HN sobre a lentidão do
tscdo que sobre orustc, apesar de otscmuitas vezes parecer pior na prática. - Alguns argumentam que Rust poderia ser marginalmente mais rápido que Go, mas os ganhos do port para Go já são “bons o suficiente”, e uma reescrita em Rust levaria mais tempo e seria estruturalmente mais difícil (estruturas de dados cíclicas, borrow checker).
- Outros destacam os benefícios do Go para desenvolvimento rápido, evolução estável de desempenho e tradução 1:1 mais fácil a partir de JS/TS.
Arquitetura do Compilador, APIs e WASM
- O port foi intencionalmente uma tradução bug-a-bug, arquivo por arquivo, e não um redesign, para preservar o comportamento.
- A falta de uma API estável de compilador na 7.0 é um grande ponto de dor; muitas ferramentas (frameworks, ESLint, ts-jest, etc.) estão presas no TS 6 até que as APIs da 7.1 e posteriores cheguem.
- Builds em WASM estão planejadas, mas ainda não totalmente esclarecidas; diferentes grupos querem:
- LSP/Monaco no navegador
- API do compilador no navegador
- Binários de CLI voltados para plataformas apenas-WASM
Impacto no Ecossistema e Ferramentas
- Alguns já veem grandes ganhos práticos (checagens pré-commit mais rápidas, editores mais responsivos), outros “apenas” acelerações de 3–4x, mas ainda assim estão satisfeitos.
- Ambientes como Deno e várias ferramentas de build/teste precisam integrar o TS7 com cuidado porque se conectam ao compilador de maneiras não triviais.
- Linting/ferramentas (especialmente ESLint) continua sendo um gargalo para a atualização.
Debate sobre Tipagem Estática
- Um grande subthread revisita tipagem estática vs dinâmica:
- Pró-TS: tipos são cruciais para manutenibilidade, refatoração, onboarding, suporte de IDE e agentes de IA; o TS ajudou a normalizar sistemas de tipos sofisticados no ecossistema JS.
- Céticos/anti-TS: linguagens dinâmicas ou gradualmente tipadas (Python, Ruby, JS + JSDoc/Zod) mais testes podem ser suficientes, especialmente para equipes pequenas, protótipos ou “vibe coding”.
- Alguns argumentam que sistemas de tipos estáticos anteriores (estilo Java/C) eram desajeitados; os modernos, com inferência, uniões/tipos soma e pattern matching, mudam as compensações.
- Permanece a discordância sobre se abordagens sem tipagem ou dinamicamente tipadas são “sérias” para sistemas grandes.
Escolhas de Linguagem e a Era de IA / “Agentic”
- Alguns veem Go como uma boa escolha para ferramentas de IA/agentic; outros argumentam que tipagem estática forte (por exemplo, TS, Rust) é ainda mais valiosa quando o código é gerado por máquina.
- Há tensão entre programação em nível de tipos mais rica (HKTs, truques complexos de tipos) e o orçamento de desempenho; compiladores mais rápidos tentam os desenvolvedores a usar padrões de tipos mais caros.