14 poin oleh GN⁺ 2025-12-10 | 4 komentar | Bagikan ke WhatsApp
  • Vibe coding memang benar-benar bekerja dengan baik, tetapi karena menghasilkan kode yang bahkan tidak sepenuhnya dipahami oleh penulisnya sendiri, kesenangan hakiki dari pemrograman pun berkurang
  • Semua bahasa pemrograman pada dasarnya adalah alat yang dirancang untuk kenyamanan manusia, bukan mesin, dan keunggulan seperti keamanan, abstraksi, serta keterbacaan pada akhirnya adalah struktur untuk membantu manusia berpikir
  • Kalau begitu, apakah kode yang ditulis AI benar-benar masih memerlukan bahasa yang ramah manusia?, muncul usulan tentang VOPL (Vibe-Oriented Programming Language), yakni bahasa baru yang ramah mesin dan berpusat pada AI
  • Bahasa ini dapat mencakup berbagai kemungkinan, seperti pseudocode yang dapat dieksekusi, perluasan dari literate programming, atau bentuk berbasis bahasa alami dengan tata bahasa tertentu
  • Seperti pada masa awal stored-program computer, penolakan terhadap paradigma komputasi baru adalah sejarah yang terus berulang, dan vibe coding mungkin saja menjadi tahap berikutnya dalam arus tersebut

Ketegangan antara pemrograman dan vibe coding

  • Bagi penulis, pemrograman adalah kesenangan, bukan pekerjaan, dan telah menjadi objek gairah sejak akhir 1990-an
    • Ia telah mengajar pemrograman selama 25 tahun, dan hal yang paling ia banggakan adalah mengubah orang non-teknis menjadi programmer
  • Saat memrogram, ia sangat menghargai kenikmatan memahami sendiri proses pemecahan masalah
  • Sebaliknya, vibe coding adalah proses ketika AI menulis kode sebagai gantinya, sehingga penulis berada dalam kondisi tidak sepenuhnya memahami hasilnya
    • Rasanya seperti sedang “cheating” (meski tidak sesederhana itu), namun lebih tepatnya menimbulkan rasa tidak nyaman yang sulit dijelaskan
    • Ini terasa seperti merampas banyak kesenangan dari kegiatan coding itu sendiri
  • Meski begitu, vibe coding bekerja cukup baik hingga mampu menghasilkan sistem nyata dengan kualitas tinggi
    • Bukan sekadar menggantikan pencarian, tetapi juga menyelesaikan secara tepat masalah yang sebenarnya malas kita tangani sendiri
    • AI lebih mahir daripada manusia dalam melacak error dan mengelola memori, dan penulis berulang kali terkejut oleh hasil yang muncul saat ia melemparkan ide program ke AI
Iklan

Bahasa pada dasarnya adalah alat untuk manusia

  • Seperti dalam Structure and Interpretation of Computer Programs karya Abelson & Sussman, bahasa pemrograman adalah sarana ekspresi untuk manusia
    • Kode adalah “sesuatu yang dibaca manusia”, dan mesin tidak membutuhkan keterbacaan
  • Semua bahasa pemrograman dirancang sebagai media untuk membantu cara berpikir dan berekspresi manusia
    • Keamanan di Rust, abstraksi di C++, konkurensi di Go, semuanya adalah fitur untuk kenyamanan manusia, bukan mesin
    • Pengelolaan memori, konkurensi, dan type safety hanyalah abstraksi untuk membantu struktur berpikir manusia
  • Karena itu, di era ketika AI menulis kode, desain bahasa yang berpusat pada manusia bisa jadi menjadi tidak diperlukan

Jadi, apakah AI membutuhkan bahasa seperti ini? : makna dari usulan “lakukan vibe coding dengan C”

  • Dalam vibe coding, manusia sudah menulis program dalam kondisi tidak sepenuhnya memahami seluruh kode
    • Dalam situasi seperti ini, alasan untuk mempertahankan sintaks yang ramah manusia menjadi lebih lemah
    • Alih-alih bahasa yang ramah manusia, bisa jadi lebih masuk akal untuk menulis langsung dengan bahasa yang ramah mesin (C atau assembly)
  • AI dapat menangani undefined behavior, dealokasi memori, off-by-one, dan sebagainya di C dengan lebih presisi daripada manusia
    • Seperti compiler yang lebih pandai melakukan optimisasi, AI juga menunjukkan kemampuan pengelolaan eksekusi kode yang lebih akurat daripada manusia
    Iklan
  • Maka pertanyaannya: bukankah kita membutuhkan bahasa yang lebih cocok digunakan AI?
    • Mengapa harus melakukan vibe coding dengan bahasa “berpusat pada manusia” seperti Python, Rust, atau C++?

Usulan VOPL (Vibe-Oriented Programming Language)

  • Jika ada bahasa yang sejak awal diasumsikan untuk vibe coding, kita bisa membayangkan kemungkinan seperti berikut
    • Bahasa tingkat sangat tinggi yang mendekati pseudocode yang dapat dieksekusi
    • Seperti bentuk sempurna dari literate programming, manusia hanya menulis deskripsi dan AI menghasilkan kode mesin
    • Struktur yang terlihat seperti bahasa alami, tetapi memiliki “ungkapan idiomatik” tertentu
    • Konsep seperti ekspresi konkurensi berbasis istilah sehari-hari (slang) alih-alih istilah seperti goroutine
  • Arah yang dibayangkan adalah merancang sistem ekspresi yang berpusat pada mesin agar AI dapat memahami masalah secara tepat dan cepat menghasilkan kode yang dapat dijalankan
  • Memang ada persoalan tentang bagaimana mengajarkan bahasa baru kepada AI, tetapi saat ini pun banyak developer sudah melemparkan pseudocode ke AI dan membuat kode lewat percakapan
    Ada kemungkinan bahwa semacam VOPL sebenarnya sudah sedang dipelajari

Perubahan pada tindakan memrogram

  • “Menulis kode dengan tangan” di masa depan mungkin akan diperlakukan dalam pendidikan vibe coder seperti pendidikan dasar ala Montessori
    • Mirip seperti latihan menggambar tangan sebelum Photoshop, atau latihan menyelesaikan persamaan di atas kertas yang tetap bertahan di kurikulum meski sudah ada kalkulator elektronik
    Iklan
  • Penolakan terhadap datangnya paradigma baru telah berulang kali terjadi dalam sejarah
    • Contoh penolakan pada masa awal penerapan stored-program computer (ENIAC → EDVAC)
    • Bahkan Grace Hopper pun pernah melawan kritik bahwa “mesin tidak bisa menulis perintah untuk mesin”

Pesan penutup

  • Vibe coding sudah menjadi kenyataan, dan pengembangan di masa depan bisa menuntut perancangan ulang bahasa itu sendiri
  • Dari era bahasa yang berpusat pada manusia, mungkin sudah saatnya secara serius membahas kemungkinan peralihan ke bahasa yang berpusat pada AI

“Same vibe, as the kids say.” — Kalau pakai istilah anak zaman sekarang, vibe-nya sama.

4 komentar

 
youknowone 2025-12-12

Kalau mau vibe coding, kenapa tidak pakai C saja?

Percaya bahwa saat ngoding dengan language model, mesin akan otomatis membuatkan ekspresi yang dekat dengan mesin secara ajaib itu pola pikir yang tamak.
Semakin banyak batasan, semakin baik ia bekerja di dalam batasan itu.

 
aer0700 2025-12-12

Meskipun ai yang menulis kode, tanggung jawab atas layanan tetap harus ditanggung oleh pengembang. Rasanya sulit untuk bertanggung jawab atas kode yang bahkan tidak bisa dipahami oleh diri sendiri.

 
dooboo 2025-12-11

"Bahkan kalau melakukan vibe coding, sebaiknya pakai bahasa yang benar-benar dikuasai agar hasilnya tetap bisa ditinjau."

Ada kalimat yang sangat penting di komentar itu.

 
GN⁺ 2025-12-10
Opini Hacker News
  • Saya kembali merasa betapa beragamnya profesi pengembangan perangkat lunak
    Saya mengerjakan backend, khususnya pengembangan API, dan hambatan produktivitas terbesar adalah kebanyakan orang tidak bisa mendefinisikan requirement dengan baik
    Kalau ditanya ke PM, mereka menghindar, dan developer frontend menunggu backend memberikan API
    Pada akhirnya, yang paling sulit bukan coding, melainkan proses berpikir untuk menemukan dan menafsirkan requirement

    • Kesulitan yang kamu alami bukan masalah pemrogramannya sendiri, melainkan akibat struktur organisasi yang tidak efisien
      Pemrograman yang sesungguhnya adalah tindakan mewujudkan sistem yang kita rancang sendiri dan memberinya kehidupan
      Kalau sekadar menulis kode di perusahaan lalu mengira itu adalah ‘Programming’, kesalahpahaman seperti ini memang bisa muncul
    • Saya adalah profesor sastra Inggris yang mengajar pemrograman kepada mahasiswa jurusan humaniora, dan karier penulisnya sangat menarik
      Namun, sepertinya dia tidak punya banyak pengalaman dalam pengembangan perangkat lunak komersial berskala besar
      Prediksinya tentang “masa depan pemrograman” memang keren, tetapi dalam konteks industri ada kemungkinan agak terbatas
      (Referensi: Tentang Stephen Ramsay)
    • Saya pernah mengerjakan backend, frontend, full-stack, otomasi QA, sampai DevOps
      Pada akhirnya yang penting adalah mindset dan seberapa besar paparan kita terhadap teknologi
      LLM sangat meningkatkan produktivitas saya — terutama bagi saya yang punya cara berpikir arsitektural
      Hal yang dulu butuh beberapa bulan sekarang bisa dibuat hanya dalam beberapa jam
      Belakangan ini saya memakai LLM untuk menerjemahkan kode Shockwave Lingo lama ke bahasa modern demi memulihkan game legacy
    • Kalau AI sudah cukup cerdas untuk mendefinisikan requirement sendiri, pada titik itu vibe coding sendiri jadi tidak diperlukan
      Kalau vibe coding adalah masa depan, itu pada akhirnya mengandung asumsi bahwa AI belum sempurna
      Begitu kita menetapkan kemampuan dan batas AI imajiner secara sewenang-wenang, pembahasannya sendiri jadi kabur
    • Jira ticket terlalu ambigu untuk langsung diserahkan ke LLM
      Biasanya harus rapat empat atau lima kali dengan para stakeholder dulu supaya jelas
  • Saya sudah mencoba vibe coding dengan C, dan saya tetap tidak suka C
    AI lupa membebaskan memori seperti manusia, lalu memperbaikinya belakangan
    Saat memakai Rust, jauh lebih menyenangkan, dan memahami ekosistem dependensi suatu bahasa adalah keahlian yang sesungguhnya
    AI membantu menelusuri ‘pengetahuan buku’ seperti ini dengan cepat

    • Review kode Rust jauh lebih jelas
      Di C, kita harus mengecek satu per satu apakah memori sudah dibebaskan, tetapi di Rust hampir tidak ada kekhawatiran seperti itu
      Bahkan kalau tetap melakukan vibe coding, saya rasa Rust jauh lebih baik karena punya pengaman di level bahasa
    • AI memang bagus menulis Python dan JavaScript, tetapi untuk C/C++ masih membuat kesalahan seperti manusia
      Fitur-fitur Python yang ramah manusia juga membantu AI
      Sekarang berkat AI, membuat UI atau utilitas baru sendiri jadi lebih mudah,
      dan mengimplementasikan hanya bagian yang butuh performa dalam C++ juga jadi sederhana
    • Saya juga sudah mencoba vibe coding dengan C, dan AI menangani manajemen memori dengan cukup baik
      Kalau saya debug sendiri dengan GDB, mungkin butuh jauh lebih lama
      Saya puas karena AI menangani bagian yang menyebalkan seperti pemrosesan string atau pengelolaan pointer
    • Belakangan ini saya belajar assembly sambil menyuruh AI menyelesaikan masalah yang sama untuk dibandingkan
      Kode yang dihasilkan compiler memang selalu lebih efisien, tetapi saya menjadikan kesalahan AI sebagai kesempatan belajar
    • Saya sarankan belajar cara membuat agent sendiri
      Bahkan dengan LLM lokal, verifikasi seperti pembebasan memori bisa diotomatisasi
  • Baru-baru ini ada diskusi berjudul “Why AI Needs Hard Rules, Not Vibe Checks”
    (tautan)
    Alasan Rust cocok untuk vibe coding adalah karena fitur verifikasi gratis seperti jaminan tipe dan lifetime
    Tanpa verifikasi seperti ini, LLM mudah menghasilkan kode yang tidak aman
    Abstraksi dibutuhkan bukan hanya oleh manusia, tetapi juga oleh LLM

    • Saya membayangkan bahasa yang dirancang untuk LLM
      Bahasa yang mengharuskan semua fungsi, variabel, tipe, dan exception didefinisikan secara ketat
      Mungkin tidak nyaman ditulis, tetapi strukturnya akan mudah dibaca dan diverifikasi
    • Artikel ACM Automatically Translating C to Rust juga menarik
      Artikel itu membahas sulitnya menerjemahkan sambil mempertahankan niat kode, bukan hanya jalur eksekusinya
    • Kalau butuh aturan sebanyak itu, apa masih ada alasan kuat untuk memakai AI?
      Alat seperti Shellcheck juga bisa membantu pemula menjadi ahli
    • Bagi LLM, yang lebih penting adalah bahasa yang mudah dianalisis secara statis
      Untuk meningkat lewat RL, harus bisa menilai konsistensi kode secara otomatis
      Perlu ada perhatian baru pada bahasa berbasis logika seperti Prolog
    • Rust juga tidak bisa mencegah kesalahan logika
      Kalau LLM menghasilkan kode yang penuh bug, hasilnya akan mirip walaupun bahasanya berbeda
  • Awalnya vibe coding terasa menakjubkan, tetapi tak lama kemudian loop revisi yang terus-menerus terasa menguras mental
    Rasanya seperti scroll feed algoritmik yang merampas fokus
    Sekarang saya menulis kode sendiri, lalu menyerahkan hanya bagian yang membosankan ke ChatGPT

    • Benar-benar terasa seperti jiwa tersedot keluar
      Selain itu, tidak ada yang dipelajari juga
    • Saya pernah mencoba meminta LLM menulis spesifikasi (spec) lebih dulu, lalu merevisinya
      Dengan begitu requirement jadi lebih jelas, dan lebih mudah pindah ke AI lain
    • Yang paling efektif adalah memecah masalah menjadi unit-unit kecil lalu memverifikasinya
  • Saya ragu LLM bisa membuat kode C tanpa memory leak
    Ini area yang bahkan developer manusia pun sering salah, jadi LLM dengan kualitas data pelatihan yang rendah lebih berbahaya lagi
    Kalau membuat program yang segfault lewat vibe coding, itu hanya buang waktu

    • Saya sudah lama memakai Rust dan LLM, dan berkat cargo check kualitas kodenya sangat tinggi
      Hampir tidak pernah rusak dan selalu berhasil dikompilasi
    • LLM juga bisa diberi sumber daya agar mendeteksi error sendiri
      Manusia lelah, tetapi LLM tidak
    • LLM makin sering di-fine-tune dengan data berkualitas tinggi
      Kalau dilatih ulang dengan kode C yang bagus, masih ada peluang untuk membaik
  • AI bisa menghindari undefined behavior di C? Sulit dipercaya
    Kalau model dilatih untuk membuat kesalahan seperti manusia, besar kemungkinan bug yang dihasilkan juga sama

    • Tetapi model terbaru memperkuat kode yang baik lewat reinforcement learning dan data sintetis
      Karena mereka memprediksi token yang paling mungkin, kesalahan umum jadi lebih jarang
    • Sonnet di Copilot Chat pernah menghasilkan kode C++ tanpa error memori dalam sekali jalan
      Ia juga cukup baik dalam menemukan penyebab crash
    • Jangan latih untuk meniru manusia, tetapi latih agar meniru compiler
    • Karena itu saya rasa Rust lebih cocok untuk generasi kode oleh LLM
    • Kalau menulis kode C dengan Claude, semakin besar skalanya semakin sering muncul bug pthread atau memori
      Bahasa modern seperti Zig atau Rust jauh lebih baik
  • Alasan vibe coding membuat saya tidak nyaman bukan semata-mata karena terasa seperti ‘curang’
    Pemrograman adalah seni yang memiliki jiwa
    Cara tiap orang memecahkan masalah berbeda-beda, dan di situlah kreativitas berada
    Vibe coding terasa seperti tindakan mesin menyerap kreativitas itu
    Pada akhirnya, pikiran, keputusan, dan kesalahan semuanya diambil alih oleh mesin

  • Ada usulan untuk membuat “vibe-oriented programming language(VOP)”
    Tetapi kalau bahasanya untuk LLM, justru seharusnya ketat dan verbose
    Semua kondisi dan exception harus dinyatakan dengan jelas, dan tidak boleh bisa dikompilasi kalau tidak demikian
    Bagi manusia ini tidak nyaman, tetapi bagi LLM justru punya kelebihan dalam mengurangi kebingungan

    • Sebenarnya yang lebih penting daripada bahasa output adalah bahasa input (prompt)
      Diperlukan struktur di mana manusia menjelaskan konsepnya, lalu AI mengubahnya menjadi kode
    • Mendengar penjelasan itu saya jadi teringat bahasa Ada
      Sekali berhasil dikompilasi, hampir selalu berjalan dengan benar
  • Bahkan kalau melakukan vibe coding, sebaiknya dilakukan dengan bahasa yang benar-benar kita pahami agar hasilnya masih bisa ditinjau
    Kalau tidak, mungkin lebih baik sekalian bereksperimen dengan brainfuck

  • Saat ditanya, “Kalau begitu bagaimana kalau pakai assembly x86?”,
    jawabannya ditolak dengan alasan, “Saya harus bisa me-review dan mengembangkannya sendiri”
    Vibe coding murni hanyalah eksperimen pemikiran, bukan tujuan yang realistis
    Mungkin suatu hari AI bisa menangani QA juga, tetapi untuk saat ini bahasa yang aman dan verifikasi manusia tetap wajib

    • Saya tertawa saat ada yang bilang, “Kalau kamu mengembangkannya sendiri, itu sudah bukan pure vibe coding lagi”
      Saya sudah cukup lama jadi developer sampai debat seperti ini pun terasa melelahkan