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
Memang seperti yang diharapkan dari Pak Hejlsberg..💜