9 poin oleh davespark 2026-01-29 | 1 komentar | Bagikan ke WhatsApp

7 pelajaran dari Anders Hejlsberg, perancang C# dan TypeScript

Pola yang berulang dalam 40 tahun karier Hejlsberg:
umpan balik cepat > keanggunan, kompatibilitas dan pragmatisme > kemurnian, trade-off yang transparan > keputusan yang tidak transparan

1. Umpan balik cepat lebih penting daripada hampir segalanya

  • Sejak masa awal dengan batasan 64KB, eksekusi cepat dan pemeriksaan error cepat sudah menjadi inti
  • Turbo Pascal dan TypeScript sama-sama menekankan pengecekan inkremental dan umpan balik instan
  • Umpan balik yang lambat → lebih banyak pekerjaan akal-akalan, turunnya kepercayaan developer
    → mendorong eksperimen dan refactoring, memaksimalkan produktivitas

2. Menskalakan software = melepaskan selera pribadi

  • Disadari saat beralih dari proyek pribadi ke proyek tim/skala besar
  • Faktor keberhasilan C#: kompatibel dengan VB + kekuatan C++ + pragmatisme Windows bisa hidup berdampingan
  • Daripada kemurnian teoretis, kode yang bisa dipahami dan dipelihara banyak orang lebih diutamakan
    → menerima keberagaman adalah kunci keberhasilan jangka panjang

3. Mengapa TypeScript tidak menggantikan JavaScript, melainkan memperluasnya

  • Ekosistem, alat, dan kebiasaan JS yang sudah ada tidak bisa begitu saja dibuang
  • Alih-alih penggantian total, dipilih perbaikan bertahap dengan menambahkan tipe
  • Membuka jalan bagi analisis statis dan refactoring yang dibutuhkan aplikasi skala besar
    → kompromi yang realistis bisa membawa kemajuan yang lebih besar daripada inovasi yang radikal

4. Kunci sukses open source adalah visibilitas

  • Setelah TypeScript dipindahkan ke GitHub pada 2014, PR, issue, dan diskusi dibuka ke publik
  • Proses pengambilan keputusan, trade-off, dan prioritas ditampilkan secara transparan
    → kepercayaan pengguna naik, kontribusi berbasis pemahaman juga meningkat
    → yang penting bukan hanya kodenya, tetapi juga berbagi “mengapa keputusan itu diambil”

5. Mengapa mereka berhenti mempertahankan compiler dalam JavaScript

  • Compiler self-hosted berbasis JS → mentok di batas performa (single-threaded, lambat pada proyek besar)
  • Dipindahkan ke Go: semantik dan quirks tetap dipertahankan sambil mendapatkan performa native dan paralelisasi
  • Alih-alih bahasa baru seperti Rust, prioritas utamanya adalah konsistensi perilaku dan kompatibilitas
    → memilih evolusi yang stabil daripada perubahan yang destruktif

6. Dalam lingkungan pengembangan yang digerakkan AI, yang paling penting adalah grounding

  • Untuk AI, akurasi dan constraint lebih penting daripada sekadar generasi
  • Type checker dan alat refactoring berperan sebagai guardrail untuk memverifikasi kode buatan AI
  • Sistem tipe yang kuat = mencegah error yang tampak masuk akal pada output AI
    → kode yang terstruktur adalah inti review yang efisien di era AI

7. Mengapa kolaborasi terbuka itu penting

  • Riwayat diskusi dan keputusan yang terbuka = menjaga memori institusional
  • Konteks yang bisa dicari → memudahkan onboarding anggota baru, memungkinkan evolusi jangka panjang
  • Berbeda dari sistem tertutup, pengetahuan bersama bisa diakumulasi dan diwariskan
    → memperkuat keberlanjutan dan daya adaptasi sistem

1 komentar

 
dopeflamingo 2026-01-29

Memang seperti yang diharapkan dari Pak Hejlsberg..💜