Anders HejlsbergのGitHubブログインタビューから得られる7つの教訓
(github.blog)C#とTypeScriptの設計者 Anders Hejlsberg から得られる7つの教訓
Hejlsbergの40年にわたるキャリアで繰り返し現れるパターン:
迅速なフィードバック > 優雅さ、互換性・実用性 > 純粋性、透明なトレードオフ > 不透明な意思決定
1. 迅速なフィードバックはほぼすべてのことより重要
- 初期の64KB制約の時代から、素早い実行とエラー確認が中核だった
- Turbo Pascal、TypeScriptのいずれも、増分チェックと即時フィードバックを重視
- フィードバックが遅いと回避作業が増え、開発者の信頼が低下する
→ 実験とリファクタリングを促し、生産性を最大化する
2. ソフトウェアのスケーリング = 個人の好みを手放すこと
- 個人プロジェクトからチーム/大規模プロジェクトへ移る中で得た気づき
- C#成功の要因: VBへの親和性 + C++の力 + Windowsの実用性の共存
- 理論的な純粋さより、多くの人が理解・保守できるコードを優先
→ 多様性を受け入れることが長期的成功の鍵
3. TypeScriptがJavaScriptを置き換えず拡張した理由
- 既存のJSエコシステム・ツール・習慣は捨てられない
- 完全な置き換えではなく、段階的改善(型追加)を選択
- 大規模アプリケーションに必要な静的解析とリファクタリングを可能にした
→ 現実的な妥協が、革新よりも大きな前進をもたらす
4. オープンソース成功の核心は可視性(visibility)
- 2014年にTypeScriptをGitHubへ移して以降、PR・Issue・議論を公開
- 意思決定の過程・トレードオフ・優先順位を透明に開示
→ ユーザーの信頼 ↑、理解に基づく貢献 ↑
→ コードだけでなく「なぜそうしたのか」を共有することが重要
5. JavaScriptでコンパイラを維持することをやめた理由
- JSベースのself-hostedコンパイラ → 性能限界(単一スレッド、大規模プロジェクトで低速)
- Goへ移植: 意味論とquirksを保ちながら、ネイティブ性能と並列化を獲得
- Rustなどの新しい言語ではなく、挙動の一貫性と互換性を最優先
→ 破壊的変化より安定した進化を選択
6. AI主導の開発環境で最も重要なのはgrounding
- AIでは生成より正確性と制約のほうが重要
- 型チェッカーとリファクタリングツールが、AIコード検証のガードレール役を果たす
- 強い型システム = AI出力のもっともらしい誤りを防ぐ
→ 構造化されたコードがAI時代の効率的レビューの核心
7. オープンな協業が重要な理由
- 公開された議論と意思決定の履歴 = 組織の記憶を保存
- 検索可能な文脈 → 新規参加者のオンボーディングが容易になり、長期的な進化が可能
- 閉鎖的システムと違い、共有知識を蓄積・伝達できる
→ システムの持続可能性と適応力を強化
1件のコメント
やはりヘイルズバーグ先生ですね..💜