27 poin oleh GN⁺ 14 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Tool pengembangan berkualitas tinggi untuk SQLite yang sudah lama dirindukan akhirnya bisa diselesaikan dalam waktu singkat dengan bantuan AI
  • Tantangan terbesar adalah membangun parser karena tidak adanya spesifikasi tata bahasa resmi dan codebase C yang kompleks
  • Dengan memanfaatkan agen coding AI seperti Claude Code, implementasi awal bisa dipercepat, tetapi masalah kode spageti membuat proyek ini ditulis ulang berbasis Rust
  • AI menunjukkan efisiensi besar dalam generasi kode, refactoring, bantuan belajar, dan peningkatan UX, tetapi juga menimbulkan efek samping seperti penundaan desain, keterputusan dari codebase, dan kecanduan pada dependensi
  • Pada akhirnya, AI hanyalah alat untuk mempercepat implementasi; desain dan arah perangkat lunak tetap harus menjadi tanggung jawab manusia

Catatan 3 Bulan Membangun Tool Pengembangan SQLite dengan AI

  • Sudah lama menginginkan tool pengembangan berkualitas tinggi untuk SQLite, tetapi tool open source yang ada kurang memadai dari sisi keandalan, kecepatan, dan fleksibilitas
    • Saat memelihara PerfettoSQL, ada kebutuhan untuk fitur seperti formatter, linter, dan ekstensi editor, tetapi tidak ada tool yang benar-benar cocok
    • Pernah ingin membuat tool baru sebagai proyek pribadi, tetapi tingkat kesulitan dan beban kerja berulang membuatnya tertunda selama bertahun-tahun

Tantangan proyek

  • SQLite tidak memiliki spesifikasi tata bahasa resmi maupun API parser yang stabil
    • Secara internal SQLite tidak membangun parse tree, sehingga logika parser harus diekstrak langsung dari source code
    • Ada lebih dari 400 aturan tata bahasa yang harus dipetakan satu per satu, dan penulisan tes serta debugging menjadi pekerjaan yang sangat repetitif dan melelahkan
  • Codebase C milik SQLite rumit dan sangat padat, sehingga sulit dipahami
    • Struktur internalnya begitu pelik sampai butuh beberapa hari hanya untuk memahami API virtual table dan implementasinya

Proses pengembangan bersama AI

  • Sejak akhir 2025, mulai memanfaatkan agen coding AI seperti Claude Code secara serius
    • Pada awalnya, sebagian besar desain dan implementasi diserahkan ke AI dengan pendekatan “vibe-coding”
    • Hasilnya memang berjalan, tetapi codebase berubah menjadi kode spageti yang terlalu kompleks untuk dipelihara
  • Setelah itu, seluruh proyek ditulis ulang dengan Rust sambil menata ulang strukturnya
    • Rust dipilih menggantikan C agar komponen tingkat atas seperti validator dan language server lebih mudah dikembangkan
    • AI kemudian dibatasi sebagai “alat autocomplete yang diperkuat”, sementara desain, review, dan pengujian dipimpin langsung
    • Juga dibangun scaffolding untuk memverifikasi hasil keluaran AI, seperti otomatisasi linting, validasi, dan pengujian

Hal-hal yang dimungkinkan oleh AI

  • Mengatasi inersia

    • AI membantu memecah pekerjaan menjadi unit masalah yang konkret, sehingga lebih mudah untuk mulai
    • Pola pikir bergeser dari “harus memahami parsing SQLite” menjadi “meninjau pendekatan yang diusulkan AI”, sehingga eksekusi menjadi lebih cepat
  • Kecepatan generasi kode dan refactoring

    • Saat kebutuhannya jelas, AI dapat menulis kode yang standar dan konsisten dengan cepat
    • Tetapi pada desain yang tidak standar, seperti struktur parser, AI justru mengganggu sehingga perlu ditulis langsung
    • Setelah generasi kode skala besar, refactoring berkelanjutan menjadi keharusan untuk menjaga kualitas
  • Peran sebagai asisten belajar

    • AI bisa menjelaskan konsep baru seperti algoritme formatting Wadler-Lindig secara real-time
    • Ini memungkinkan masuk lebih cepat ke area yang belum akrab seperti Rust dan ekstensi VS Code
    • Saat konteks proyek mulai hilang, pertanyaan seperti “jelaskan komponen ini” membantu memulihkan konteks secara instan
  • Meningkatkan tingkat kematangan hasil

    • AI menurunkan biaya pengembangan fitur tambahan seperti ekstensi editor, binding Python, playground WASM, dan situs dokumentasi
    • Karena beban implementasi berkurang, fokus bisa dialihkan ke peningkatan UX, seperti pesan error dan desain CLI

Efek samping penggunaan AI

  • Sifat adiktif

    • Ada struktur hadiah ala mesin slot dalam kebiasaan mengulang “satu prompt lagi”
    • Semakin lelah, kualitas prompt menurun, hasil ikut memburuk, dan lahirlah lingkaran setan
  • Keterputusan dari codebase

    • Semakin banyak kode yang dihasilkan AI, semakin hilang pula rasa terhadap struktur detailnya
    • Saat konteks hilang, percakapan dengan AI menjadi lebih panjang dan tidak efisien
    • Sebagai solusi, dibentuk kebiasaan membaca langsung kode yang baru dihasilkan dan memeriksa “bagian mana yang akan saya tulis secara berbeda”
  • Penundaan dan pengikisan desain

    • Karena refactoring terasa mudah, muncul kecenderungan untuk menunda keputusan desain yang inti
    • Sekalipun tes banyak, kesalahan desain yang mendasar sulit tertutupi, dan pada akhirnya perlu penulisan ulang total
  • Tidak punya rasa waktu

    • AI tidak mampu memahami konteks temporal maupun proses evolusi sebuah kode
    • Akibatnya, kesalahan lama bisa terulang atau masalah yang sebenarnya sudah selesai malah dieksplorasi lagi
    • Dokumentasi bisa membantu, tetapi niat desain tidak mudah direkam secara sepenuhnya

Relativitas dalam memanfaatkan AI

  • Di domain yang sudah dipahami mendalam, AI sangat unggul karena review dan iterasi bisa dilakukan cepat
    • Contoh: pembuatan aturan parser efisien karena punya jawaban yang jelas
  • Di domain yang hanya sebagian dipahami, AI berguna sebagai alat belajar, tetapi tetap perlu kewaspadaan terus-menerus
    • Contoh: mempelajari algoritme formatter
  • Pada tahap belum tahu apa yang ingin dibuat, AI justru cenderung merugikan
    • Contoh: pada tahap desain arsitektur, AI dapat memicu loop yang tidak produktif
  • Untuk masalah yang bisa diverifikasi seperti lolos kompilasi dan tes, AI kuat, tetapi
    pada masalah tanpa jawaban tunggal seperti desain dan kualitas API, AI lemah

Kesimpulan

  • Tool SQLite yang telah dirancang selama 8 tahun akhirnya bisa diwujudkan hanya dalam 3 bulan berkat AI
    • Namun prosesnya bukan sekadar kisah sukses, melainkan juga disertai batasan dan biaya dari ketergantungan pada AI
  • AI adalah alat percepatan implementasi, tetapi bukan pengganti desain
    • AI bisa menjawab pertanyaan teknis dengan akurat, tetapi tidak memiliki sejarah, selera, maupun kepekaan terhadap pengguna
  • Pelajaran yang sebenarnya adalah, meskipun AI membuat kita lebih cepat menabrak tembok,
    manusialah yang harus bertanggung jawab atas arah desain dan ‘jiwa perangkat lunak’
  • Yang dibutuhkan ke depan adalah lebih banyak berbagi contoh proyek yang benar-benar tahan terhadap pengguna nyata dan beban pemeliharaan
    • Bukan sekadar eksperimen, melainkan akumulasi pengalaman pengembangan kolaboratif AI yang realistis dan berkelanjutan

Belum ada komentar.

Belum ada komentar.