Komunitas Developer Terpecah Soal LLM vs Library: Kekhawatiran Keamanan Memicu Perdebatan

Tim Komunitas BigGo
Komunitas Developer Terpecah Soal LLM vs Library: Kekhawatiran Keamanan Memicu Perdebatan

Komunitas pengembangan perangkat lunak sedang terlibat dalam diskusi sengit tentang apakah large language model ( LLM ) membuat developer kurang tertarik menggunakan library yang sudah mapan. Sementara sebagian berpendapat bahwa kode yang dihasilkan AI menciptakan kebiasaan buruk, yang lain melihat LLM sebagai alat yang powerful yang justru meningkatkan adopsi library.

Kerentanan Keamanan Memicu Skeptisisme terhadap Library

Sebagian besar developer mengungkapkan kekhawatiran serius tentang dependensi library dan implikasi keamanannya. Komunitas menunjuk pada insiden besar seperti kerentanan Log4j dan krisis npm left-pad sebagai contoh bagaimana ketergantungan pada library eksternal dapat menciptakan risiko yang katastrofik. Peristiwa-peristiwa ini membuat banyak tim lebih berhati-hati dalam menambahkan dependensi ke proyek mereka.

Developer Python khususnya berjuang dengan dependency bloat, di mana menginstal satu package sering kali membawa puluhan library tambahan. Setiap dependensi baru merepresentasikan potensi risiko keamanan yang harus dipantau dan dipelihara oleh tim. Untuk aplikasi kritis, setiap library kini memerlukan pemeriksaan menyeluruh dan tinjauan keamanan berkelanjutan.

Log4j: Kerentanan keamanan kritis yang ditemukan pada 2021 dalam library logging Java yang banyak digunakan dan mempengaruhi jutaan aplikasi di seluruh dunia

Insiden Keamanan Perpustakaan Utama yang Direferensikan:

  • Log4j (2021): Kerentanan kritis dalam perpustakaan logging Java yang mempengaruhi jutaan aplikasi
  • npm left-pad (2016): Penghapusan paket merusak ribuan proyek JavaScript yang bergantung pada fungsi utilitas 11 baris

LLM sebagai Alat Penemuan Library

Berlawanan dengan kekhawatiran tentang LLM yang menggantikan library, beberapa developer melaporkan bahwa alat AI justru membantu mereka menemukan dan menggunakan library yang tepat dengan lebih efektif. Alat-alat ini dapat langsung menyediakan contoh penggunaan dan mengurangi hambatan dalam mengintegrasikan dependensi baru ke dalam proyek. Alih-alih menulis solusi custom yang inferior, developer dapat dengan cepat mengevaluasi apakah library yang ada memenuhi kebutuhan mereka.

Akhirnya kami memiliki alat yang dapat belajar dari semua library dan abstraksi yang harus sesuai dengan kebutuhan semua orang, dan mengekstrak hanya bagian-bagian yang benar-benar relevan dengan masalah dan domain kami.

Pendekatan ini memungkinkan solusi yang lebih terarah dengan attack surface yang lebih kecil, karena developer dapat menghasilkan kode yang spesifik untuk domain yang menggabungkan pola-pola terbukti tanpa membawa overhead library yang tidak perlu.

Argumen Utama untuk Pengembangan Berbantuan LLM:

  • Mengurangi hambatan dalam penemuan dan integrasi library
  • Generasi kode spesifik domain dengan permukaan serangan yang lebih kecil
  • Akses instan ke contoh penggunaan dan dokumentasi
  • Kemampuan untuk mengekstrak pola yang relevan tanpa overhead library penuh
  • Peningkatan kemampuan pembelajaran dan eksplorasi

Keseimbangan Antara Inovasi dan Keandalan

Perdebatan ini mengungkapkan ketegangan mendasar dalam pengembangan perangkat lunak modern. Tim yang bekerja pada sistem kritis sering lebih memilih prediktabilitas kode custom daripada ketidakpastian dependensi eksternal. Mereka berargumen bahwa menangani bug dalam kode mereka sendiri lebih baik daripada mengelola library yang deprecated atau update versi yang merusak.

Namun, pendekatan ini datang dengan trade-off. Menulis implementasi custom membutuhkan lebih banyak waktu dan mungkin melewatkan edge case yang sudah dipecahkan oleh library yang mapan. Pilihan sering bergantung pada use case spesifik, keahlian tim, dan toleransi risiko organisasi.

Argumen Utama Menentang Penggunaan Library:

  • Kerentanan keamanan dan perluasan permukaan serangan
  • Pembengkakan dependensi (paket tunggal yang menginstal puluhan library)
  • Beban pemeliharaan untuk menjaga dependensi tetap terbaru
  • Perubahan yang merusak dalam pembaruan versi
  • Kebutuhan untuk penelaahan menyeluruh dan tinjauan kode

Kesimpulan

Diskusi ini menyoroti bahwa baik LLM maupun library memiliki tempat mereka dalam workflow pengembangan modern. Daripada melihat mereka sebagai pendekatan yang bersaing, tim yang sukses belajar menggunakan setiap alat dengan tepat. LLM unggul dalam menghasilkan solusi yang terarah dan membantu developer memahami API library, sementara library yang mapan menyediakan solusi yang teruji untuk masalah kompleks. Kuncinya adalah mengetahui kapan menggunakan setiap pendekatan berdasarkan persyaratan keamanan, batasan proyek, dan pertimbangan pemeliharaan jangka panjang.

Referensi: Libraries are under-used. LLMs make this problem worse.