Apakah Anda setuju bahwa beberapa bahasa pemrograman lebih baik daripada yang lain? Jika ya, maka salah satunya harus yang terbaik. Dan sebenarnya itu adalah Common Lisp, terutama sekarang bahwa LLM dapat menulis kode. LLM menulis kode sangat cepat, dan ini mengubah banyak hal, karena menulis kode dulu adalah bagian yang lambat.
Sekarang bagian yang lambat adalah mengetahui apakah program Anda sebenarnya bekerja, dan sebelum Anda bisa melakukan itu, Anda harus membangun ulang programnya, yang dapat memakan beberapa menit. Ketika manusia menulis kode, ini tidak terlalu penting, karena menulis membutuhkan waktu yang jauh lebih lama daripada menunggu kompilasi dan mulai berjalan. Namun sekarang ini penting, jadi berapa lama loop umpan balik Anda menentukan seberapa cepat Anda dapat membangun.
Dalam Common Lisp loop ini hampir tidak ada karena tidak ada perbedaan nyata antara waktu baca, waktu kompilasi, dan waktu eksekusi (Graham). Common Lisp berbasis citra, yang berarti program Anda adalah citra hidup di memori, sehingga versi baru dari suatu fungsi menggantikan yang lama segera tanpa perlu me-restart apa pun. Selain itu, di sebagian besar bahasa, kesalahan akan membuat program Anda crash.
Jadi jika Anda menulis kode dengan LLM, maka LLM harus membaca log crash Anda untuk melakukan beberapa perubahan dan menjalankan program Anda lagi. Dalam Common Lisp program Anda tidak akan crash, ia akan berhenti dan membuka debugger dengan seluruh stack dan semua variabel. Anda cukup mengarahkan LLM Anda ke debugger, dan ia akan melakukan perbaikannya dan melanjutkan program.
Seperti yang saya ketahui, Common Lisp adalah bahasa utama satu-satunya yang melakukan semua hal ini. Lisp berarti "Pengolahan Daftar". Dalam Common Lisp, kode ditulis sebagai daftar.
Sebagai contoh, (+ 1 2) adalah program yang menambahkan dua angka, tetapi ini juga hanya daftar dari tiga hal: simbol +, dan angka 1 dan 2. Yang menarik adalah ini adalah jenis daftar yang sama yang Common Lisp gunakan untuk menyimpan data, dan karena bahasa dibangun attorno ke pemrosesan daftar, maka semua alatnya untuk bekerja dengan data juga bekerja pada kode. Jadi sebuah program dapat mengambil program lain dan mengubahnya, misalnya dapat mengubah (+ 1 2) menjadi (* 1 2), dan menjalankan hasilnya segera.
Ini adalah yang membuat makro mungkin. Makro adalah fungsi yang mengambil kode Anda dan mengembalikan kode baru di tempatnya, yang berarti Anda dapat menambahkan konstruksi baru ke dalam bahasa itu sendiri. Setelah Anda dapat menambahkan ke bahasa, Anda dapat membangunnya menuju masalah Anda.
Jadi dalam Lisp Anda tidak hanya menulis sebuah program, Anda menulis sebuah bahasa untuk domain Anda dan kemudian menulis program dalam bahasa itu. Ini menjadi lebih penting sekarang karena apa yang membuat program berharga adalah pendapat di baliknya. Dan kita menuju dunia di mana perusahaan perangkat lunak membiarkan pengguna mengubah produk mereka sendiri, karena dengan LLM itu mudah.
Jadi jika sebuah perusahaan membangun bahasa domain yang berpendapat baik untuk produknya, maka semuanya yang dibangun pengguna di atasnya akan jauh lebih baik, karena mereka mulai dari pendapat perusahaan dan bukan dari nol. Ambil contoh ERP. Setiap perusahaan menjalankannya sedikit berbeda, sehingga hampir semua orang akhirnya perlu mengubahnya.
Namun jika ERP ditulis dalam bahasa domainnya sendiri, Anda cukup meminta LLM untuk melakukan perubahan dalam bahasa tersebut. Perubahan tersebut akan secara natural mengikuti pendapat dasar bahasa domainnya, sehingga cocok dengan produk alih-alih merusaknya. Dan ini tidak hanya lebih baik, tetapi juga lebih murah.
Program Lisp sering jauh lebih ringkas karena makro memungkinkan Anda mengabstraksi pola yang berulang dan menjadikannya bagian dari bahasa itu sendiri. Sehingga semakin besar programnya, semakin besar perbedaannya. Dalam pengalaman saya, aplikasi yang saya bangun dalam Common Lisp akhirnya menjadi enam hingga tujuh kali lebih singkat daripada versinya dalam Python.
Untuk LLM, kode yang lebih sedikit berarti token yang lebih sedikit, dan token adalah apa yang Anda bayar, sehingga Anda mengeluarkan lebih sedikit untuk pengembangan. Ini juga berarti bagian lebih besar dari program Anda dapat muat dalam jendela konteks LLM. Jika LLM Anda memiliki seluruh program Anda di jendela konteksnya, maka ia memiliki tampilan lengkap niat Anda, yang mengarah ke ia membuat keputusan yang lebih baik.
Dalam pengalaman saya, banyak bug LLM berasal dari perubahan satu bagian dari program saya tanpa melihat bagian lain. Sehingga dengan Common Lisp ini terjadi kurang sering. Common Lisp adalah bahasa utama satu-satunya yang melakukan semua hal ini.
Sumber: Hacker News · Diringkas oleh HeadlinesBriefing