- Pemrograman adalah tindakan kreatif untuk mempertajam spesifikasi yang ambigu menjadi presisi, dan AI mempercepat proses ini dengan mengubah spesifikasi berbahasa Inggris menjadi kode
Vibe coding memungkinkan gaya pengembangan yang mengandalkan intuisi, tetapi tetap tidak bisa menghindari masalah kompleksitas dan bug akibat kebocoran abstraksi
- Manusia menggunakan abstraksi dan kompresi untuk menangani kompleksitas, dan ini berfungsi sebagai nilai hakiki dari pemrograman
- Di era AGI, AI diperkirakan akan mendukung abstraksi yang lebih baik dan memungkinkan penciptaan kode yang canggih dan artistik
- Berlawanan dengan anggapan bahwa “kode sudah mati”, AI diposisikan bukan sebagai akhir dari coding, melainkan alat yang membuka awal baru
Kematian kode adalah klaim yang dibesar-besarkan
- Menunjukkan ambiguitas spesifikasi berbahasa Inggris dan batas presisinya, serta bahwa pemrograman, seperti menulis, adalah tindakan meningkatkan presisi secara berulang
- Melalui kutipan Bertrand Russell, ditekankan bahwa “segala sesuatu itu samar sampai kita mencoba membuatnya tepat”
- AI dengan cepat mengubah spesifikasi yang ditulis dalam bahasa Inggris menjadi kode yang dapat dijalankan, sehingga pengguna bisa secara bertahap memperjelas hasil yang diinginkan
Vibe coding adalah pendekatan pengembangan yang mengandalkan respons terhadap hasil buatan AI secara intuitif, tetapi ini dapat menimbulkan ilusi abstraksi yang akurat
- Ketika abstraksi bocor, bug yang tak terduga muncul, dan masalah ini menjadi lebih serius seiring bertambahnya skala
- Diperkenalkan contoh Dan Shipper, yang mengalami editor teks kolaboratif buatannya dari
vibe coding sempat populer lalu tumbang karena masalah kompleksitas
- “Kolaborasi langsung” tampak sederhana secara intuitif, tetapi pada kenyataannya merupakan masalah yang sangat sulit, memperlihatkan hakikat kompleksitas
Abstraksi dan pengendalian kompleksitas
- Manusia hanya dapat memahami sekitar 7±2 item sekaligus, sehingga satu-satunya cara menangani kompleksitas adalah ‘kompresi’, yaitu abstraksi
- Melalui kutipan Edsger Dijkstra, ditekankan bahwa “tujuan abstraksi bukanlah ambiguitas, melainkan presisi pada tingkat makna yang baru”
- Disajikan contoh Sophie Alpert yang menyederhanakan diagram alur notifikasi Slack yang rumit
- Inti pemrograman adalah menciptakan abstraksi yang lebih baik untuk menangani kompleksitas, dan keindahannya dapat ditemukan dalam hal seperti functional reactive programming
- Bahkan masalah yang secara inheren kompleks seperti editor teks kolaboratif dapat ditaklukkan secara bertahap melalui alat abstraksi seperti ReactJS atau TailwindCSS
Era AGI dan peran kode
- Seiring AI berkembang semakin cepat dan murah, pada akhirnya ia akan mencapai kecerdasan yang tak dapat dibedakan dari manusia (AGI)
- Di era AGI, diperkirakan siapa pun akan dapat memanfaatkan kecerdasan yang begitu kuat hingga setara dengan ‘100 jenius kelas Karpathy’ dengan biaya murah
- Namun ini bukan untuk memproduksi ‘lebih banyak kode buruk’, melainkan digunakan sebagai alat untuk abstraksi yang lebih baik dan pemahaman kompleksitas
- Kode bukan sekadar sarana untuk membuat perangkat lunak, melainkan hasil artistik yang penting pada dirinya sendiri, dan kode yang ditulis dengan baik dianalogikan dengan puisi
- Sebagaimana tidak ada ‘vibe writing’ dalam menulis, coding juga tidak dapat digantikan oleh tindakan intuitif semata
- Ketika AGI tiba, mesin akan mampu menulis kode
non-slop, dan ini akan menjadi kemajuan yang agung bagi umat manusia
AI dan peningkatan kualitas kode
- Saat ini AI masih menghasilkan kode yang belum sempurna, tetapi para pengembang memanfaatkannya dengan menyadari keterbatasan itu
- Seperti pandangan Simon Willison, AI seharusnya digunakan sebagai alat untuk membuat kode yang lebih baik
- Ketika AGI muncul, ia pertama-tama akan diterapkan untuk memecahkan masalah abstraksi yang paling sulit, sehingga memperbaiki sistem kompleks seperti pustaka editor kolaboratif
- Diperkenalkan contoh pengembangan framework React full-stack (vtrr) untuk Val Town dengan memanfaatkan Opus 4.6
- Masalah React Router 7 yang belum terselesaikan dapat diatasi sekaligus, dan kompleksitas ditangani secara elegan melalui demo satu berkas sepanjang 50 baris
- Ini menunjukkan bahwa penciptaan kode yang canggih melalui kolaborasi AI dan manusia memang dimungkinkan
Masa depan kode dan nilai formalisme
- Banyak orang di masyarakat percaya bahwa “kode sudah mati”, tetapi ini adalah kesalahan yang setara dengan menyatakan berakhirnya cerita karena penemuan mesin cetak
- AI bukan akhir dari coding, melainkan awal baru bagi coding
- Melalui kutipan Edsger Dijkstra, Tony Hoare, dan Charles Babbage, ditekankan bahwa pemikiran formal dan daya kompresi simbol memperluas kemampuan berpikir manusia
- Dijkstra menyebut penggunaan bahasa formal seharusnya dipandang bukan sebagai beban, melainkan privilese
- Hoare membandingkan dua pendekatan: “desain sederhana yang jelas tanpa cacat” dan “desain kompleks yang cacatnya tidak tampak jelas”
- Babbage menunjukkan bahwa kompresi simbol adalah kekuatan yang mendorong pemikiran
- Kesimpulannya, kode belum mati, dan justru muncul sebagai alat kreatif yang semakin kuat di era AI
1 komentar
Opini Hacker News
Chris Lattner meninjau compiler yang ditulis dengan Claude AI, dan menurutnya tidak ada bagian yang benar-benar inovatif
AI cenderung menggabungkan ulang pengetahuan yang sudah ada secara rata-rata, sehingga tidak bisa dengan sendirinya menghasilkan pemikiran kritis atau paradigma baru
Manusia bisa berpikir di luar konsensus yang ada, tetapi AI memiliki dorongan untuk kembali ke konsensus tersebut
Pada akhirnya AI adalah seorang konformis (conformist), dan itulah sekaligus kekuatan dan kelemahannya
Tulisan terkait
Daripada menghabiskan berjam-jam memahami sendiri dokumentasi konfigurasi autentikasi yang rumit seperti OAuth atau SAML, LLM bisa dengan cepat membuat kode integrasi yang bisa langsung berjalan
Saya juga memakainya seperti rubber duck debugging untuk merapikan pikiran saya sambil berdialog dengan AI
Percakapan seperti ini punya tingkat kompleksitas yang sulit dilakukan oleh orang tanpa pengalaman pengembangan nyata
Kekhawatiran yang sebenarnya adalah apakah AI akan mengurangi permintaan sehingga industri menjadi kelebihan pasokan
Jika masalah bisnis baru terus muncul, AI akan membantu sebagai alat, tetapi jika tidak, lapangan kerja akan tetap berkurang terlepas ada AI atau tidak
Jaringan saraf pada dasarnya melakukan interpolasi, bukan ekstrapolasi
Artinya, di dalam wilayah yang telah dipelajari hasilnya bisa sangat canggih, tetapi di luar itu prediksinya tidak dapat diandalkan
Artikel Wikipedia dan contoh SolidGoldMagikarp menunjukkan hal ini dengan baik
Tujuan Claude bukanlah inovasi, melainkan membuktikan apakah “AI bisa membuat compiler”
Jika melihat contoh seperti AlphaDev atau AlphaEvolve, kemungkinan AI benar-benar menghasilkan inovasi lewat pembelajaran eksploratif dan penggabungan pengetahuan juga cukup besar
Dalam kebanyakan kasus kita menginginkan alat yang bisa diprediksi, bukan entitas tidak stabil yang belajar sendiri
AI punya kemampuan merapikan kebutuhan yang saling bertentangan dan menghasilkan implementasi yang konsisten
Misalnya, bahkan untuk permintaan mustahil seperti “tolong gambar 7 garis merah dengan tinta biru”, AI tetap bisa merespons secara logis
Fakta bahwa Claude benar-benar menjawab “itu tidak mungkin, jadi menggambar 0 garis adalah jawaban yang jujur” adalah contoh pemikiran kritis
Terhadap pertanyaan “bisakah AI menciptakan teknologi baru?”, saya skeptis
Karena AI bergantung pada data yang sudah ada, ketika bahasa atau framework baru muncul, kurangnya data pelatihan bisa menimbulkan risiko melambatnya laju evolusi
AI coding justru bisa mengurangi “menciptakan ulang roda” dan membantu kita keluar dari sindrom NIH
Meski hampir tidak ada data pelatihan, model tetap bisa membaca dokumentasi, menulis kode, dan melakukan percobaan baru
Kita perlu tetap membuka kemungkinan bahwa suatu hari AI juga akan mampu melakukan sintesis teknis yang kreatif
Pada akhirnya mungkin akan datang zaman ketika developer harus membayar agar masuk ke data pelatihan AI
Misalnya platform seperti skills.sh menyediakan sistem skill untuk mengajarkan framework baru kepada AI
Hanya dengan dokumentasi dan contoh kode, AI bisa langsung menggunakan framework tersebut
Saya punya perasaan yang bertentangan terhadap kode
Dalam pekerjaan, kode adalah utang, tetapi sekaligus juga kesenangan sebagai hobi
Rasanya dunia seperti komputer di Star Trek, tempat kita “cukup meminta dengan kata-kata lalu semuanya dikerjakan”, semakin dekat
Banyak sumber daya intelektual masyarakat digunakan untuk teknologi iklan atau industri pengawasan
Jika AI menggantikan coding, ini mungkin bisa menjadi momentum redistribusi talenta
Saya sedang membuat CRDT yang pada struktur pohon bisa dipindah, dihapus, dan diurutkan tanpa tombstone
Claude Code menulis kode dengan baik, tetapi terus mencoba menambahkan tombstone, jadi saya harus meyakinkannya dengan pembuktian logis
Sepertinya AI masih belum sepenuhnya memiliki pemahaman struktural yang sedetail ini
Setiap kali teknologi baru muncul, manusia selalu melewati masa ekspektasi berlebihan dan eksperimen
Melalui proses itu kita mempelajari batas-batas teknologi, dan memang begitulah cara manusia
Janji agentic programming terlihat terlalu bagus, tetapi pada akhirnya semua orang akan belajar realitas lewat trial and error
Daripada mengatakan “kode sudah mati”, saya melihat manusia sedang menaikkan tingkat abstraksi satu level
Sekarang kita bisa menulis spesifikasi dalam bahasa Inggris lalu AI menulis kodenya
Tetapi ketika dibutuhkan specificity yang sepenuhnya jelas, kode tetap lebih berguna
Seperti mengedit foto, jika perlu kontrol yang presisi lebih baik melakukannya sendiri, tetapi untuk kebanyakan kasus menyerahkannya ke AI sudah cukup
Saya pikir seiring waktu AI akan menulis kode yang stabil dan aman lebih baik daripada manusia
Seperti yang dikatakan Simon Willison, nilai sejati dari vibe coding bukanlah “lebih cepat”, melainkan membuat “kode yang lebih baik”
Kita bisa membuat prototipe dengan berbagai model desain, lalu mengulang perbaikan berdasarkan keterbacaan, keandalan, dan toleransi kesalahan
Sekarang saat code review, kalau saya bilang “bagian ini ubah seperti ini”, AI langsung memperbaikinya
Tetapi banyak rekan hanya menantikan “dunia tempat kode menghilang”
Belum lama ini ada artikel bahwa ketika Donald Knuth meminta AI membuat pembuktian, AI menemukan pembuktian yang sebelumnya tidak diketahui
Namun itu kemungkinan besar bukan penemuan baru, melainkan menemukan kembali materi yang terlupakan
Inilah yang membuat LLM menjadi alat riset yang kuat, sekaligus membuatnya tampak seolah kreatif
Jika membaca Dragon Book, dalam beberapa bulan Anda bisa membuat sesuatu yang berjalan, dan dalam prosesnya akan memahami semua prinsipnya
Saya menganggap bahasa pemrograman sebagai sarana untuk mengekspresikan niat manusia secara padat
Namun kadang bahasa alami justru lebih akurat dan padat dalam menyampaikan niat
Abstraksi yang baik mengurangi jarak ini, dan bahasa keluarga DSL atau ML/Lisp adalah contohnya
Misalnya seperti tutorial Electric Clojure, kode bisa menjadi medium yang paling baik untuk memuat niat
Pada akhirnya, seperti kata Wittgenstein, “gambar yang samar kadang justru bisa menjadi tepat seperti yang kita butuhkan”