7 lições aprendidas com Anders Hejlsberg, criador do C# e do TypeScript
Padrões que se repetem ao longo dos 40 anos de carreira de Hejlsberg:
feedback rápido > elegância, compatibilidade e pragmatismo > pureza, trade-offs transparentes > decisões opacas
1. Feedback rápido é mais importante do que quase tudo
- Desde a era das limitações iniciais de 64 KB, executar rápido e verificar erros rapidamente era essencial
- Tanto o Turbo Pascal quanto o TypeScript enfatizam checagem incremental e feedback imediato
- Feedback lento → mais soluções de contorno, menos confiança dos desenvolvedores
→ incentiva experimentação e refatoração, maximizando a produtividade
2. Escalar software = deixar de lado preferências pessoais
- Percepção adquirida ao passar de projetos individuais para equipes e projetos de grande escala
- Fator de sucesso do C#: convivência entre afinidade com VB + poder do C++ + pragmatismo do Windows
- Priorizar código que mais pessoas consigam entender e manter, em vez de pureza teórica
→ aceitar a diversidade é a chave para o sucesso de longo prazo
3. Por que o TypeScript expandiu o JavaScript em vez de substituí-lo
- Não era possível abandonar o ecossistema, as ferramentas e os hábitos já existentes do JS
- Em vez de substituição completa, escolheu-se uma melhoria gradual com adição de tipos
- Isso tornou possível análise estática e refatoração necessárias para aplicações de grande porte
→ compromissos realistas trazem avanços maiores do que inovação pela ruptura
4. A chave do sucesso em open source é a visibilidade
- Após a migração do TypeScript para o GitHub em 2014, PRs, issues e discussões passaram a ser públicos
- O processo de decisão, os trade-offs e as prioridades ficaram visíveis de forma transparente
→ mais confiança dos usuários, mais contribuições com base em entendimento
→ é importante compartilhar não só o código, mas também “por que foi feito assim”
5. Por que ele desistiu de manter o compilador em JavaScript
- Compilador self-hosted baseado em JS → limites de desempenho (thread única, lentidão em projetos grandes)
- Port para Go: preservando semântica e quirks, mas obtendo desempenho nativo e paralelização
- Em vez de uma linguagem nova como Rust, a prioridade máxima foi consistência de comportamento e compatibilidade
→ escolheu evolução estável em vez de mudança disruptiva
6. No ambiente de desenvolvimento guiado por IA, o mais importante é grounding
- Para IA, exatidão e restrições importam mais do que geração
- Type checker e ferramentas de refatoração funcionam como guardrails para validar código gerado por IA
- Um sistema de tipos forte = prevenção de erros plausíveis na saída da IA
→ código estruturado é a chave para revisão eficiente na era da IA
7. Por que colaboração aberta é importante
- Histórico público de discussões e decisões = preservação da memória institucional
- Contexto pesquisável → facilita o onboarding de novos participantes e viabiliza evolução de longo prazo
- Diferentemente de sistemas fechados, há acúmulo e transmissão de conhecimento compartilhado
→ reforça a sustentabilidade e a adaptabilidade do sistema
1 comentários
Como sempre, o mestre Hejlsberg..💜