9 pontos por davespark 2026-01-29 | 1 comentários | Compartilhar no WhatsApp

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

 
dopeflamingo 2026-01-29

Como sempre, o mestre Hejlsberg..💜