9 points par davespark 2026-01-29 | Aucun commentaire pour le moment. | Partager sur WhatsApp

7 leçons tirées d’Anders Hejlsberg, le concepteur de C# et de TypeScript

Schémas récurrents dans les 40 ans de carrière de Hejlsberg :
retour rapide > élégance, compatibilité et pragmatisme > pureté, compromis transparents > décisions opaques

1. Un retour rapide est plus important que presque tout le reste

  • Depuis l’époque des contraintes initiales de 64 KB, l’exécution rapide et la vérification immédiate des erreurs sont essentielles
  • Turbo Pascal comme TypeScript mettent l’accent sur les vérifications incrémentales et le retour immédiat
  • Retour lent → plus de contournements, baisse de la confiance des développeurs
    → encourage l’expérimentation et le refactoring, et maximise la productivité

2. Faire évoluer le logiciel à grande échelle = mettre de côté ses préférences personnelles

  • Prise de conscience lors du passage de projets personnels à des projets d’équipe et de grande ampleur
  • Facteurs du succès de C# : convivialité de VB + puissance de C++ + pragmatisme de Windows
  • Priorité à un code que beaucoup de personnes peuvent comprendre et maintenir, plutôt qu’à une pureté théorique
    → accepter la diversité est la clé du succès à long terme

3. Pourquoi TypeScript a étendu JavaScript au lieu de le remplacer

  • Impossible d’abandonner l’écosystème, les outils et les habitudes existants autour de JS
  • Choix d’une amélioration progressive (ajout de types) plutôt qu’un remplacement complet
  • Permet l’analyse statique et le refactoring nécessaires aux applications de grande taille
    → un compromis réaliste apporte parfois plus de progrès qu’une innovation radicale

4. La clé du succès open source, c’est la visibilité

  • Après le transfert de TypeScript sur GitHub en 2014, PR, issues et discussions sont devenues publiques
  • Le processus de décision, les compromis et les priorités ont été exposés de manière transparente
    → confiance accrue des utilisateurs, contributions plus nombreuses et mieux informées
    → il est important de partager non seulement le code, mais aussi le « pourquoi » des choix

5. Pourquoi ils ont renoncé à maintenir le compilateur en JavaScript

  • Compilateur auto-hébergé en JS → limites de performance (mono-thread, lenteur sur les gros projets)
  • Portage vers Go : conservation de la sémantique et des particularités, tout en obtenant des performances natives et la parallélisation
  • Priorité absolue à la cohérence du comportement et à la compatibilité, plutôt qu’à un nouveau langage comme Rust
    → choix d’une évolution stable plutôt qu’un changement disruptif

6. Dans un environnement de développement piloté par l’IA, le plus important est le grounding

  • Pour l’IA, la précision et les contraintes comptent davantage que la simple génération
  • Les vérificateurs de types et les outils de refactoring servent de garde-fous pour valider le code produit par l’IA
  • Un système de types robuste = prévention des erreurs plausibles produites par l’IA
    → un code structuré est au cœur d’une revue efficace à l’ère de l’IA

7. Pourquoi la collaboration ouverte est importante

  • Historique public des discussions et des décisions = préservation de la mémoire institutionnelle
  • Contexte consultable → intégration facilitée des nouveaux arrivants, évolution à long terme rendue possible
  • Contrairement aux systèmes fermés, les connaissances partagées s’accumulent et se transmettent
    → renforce la durabilité et la capacité d’adaptation du système

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.