Komuniti pembangunan perisian sedang terlibat dalam perbincangan hangat mengenai sama ada model bahasa besar (LLM) menjadikan pembangun kurang berkemungkinan menggunakan perpustakaan yang telah ditetapkan. Walaupun sesetengah pihak berpendapat bahawa kod yang dijana AI sedang mewujudkan tabiat buruk, yang lain melihat LLM sebagai alat berkuasa yang sebenarnya meningkatkan penggunaan perpustakaan.
Kelemahan Keselamatan Menyemarakkan Keraguan Terhadap Perpustakaan
Sebahagian besar pembangun menyatakan kebimbangan serius mengenai kebergantungan perpustakaan dan implikasi keselamatannya. Komuniti menunjukkan insiden besar seperti kelemahan Log4j dan krisis npm left-pad sebagai contoh bagaimana bergantung pada perpustakaan luaran boleh mewujudkan risiko bencana. Peristiwa-peristiwa ini telah menjadikan banyak pasukan lebih berhati-hati mengenai menambah kebergantungan kepada projek mereka.
Pembangun Python khususnya bergelut dengan kembung kebergantungan, di mana memasang satu pakej sering membawa berpuluh perpustakaan tambahan. Setiap kebergantungan baru mewakili risiko keselamatan berpotensi yang mesti dipantau dan diselenggara oleh pasukan. Untuk aplikasi kritikal, setiap perpustakaan kini memerlukan penelitian menyeluruh dan semakan keselamatan berterusan.
Log4j: Kelemahan keselamatan kritikal yang ditemui pada 2021 dalam perpustakaan pengelogan Java yang digunakan secara meluas yang menjejaskan berjuta-juta aplikasi di seluruh dunia
Insiden Keselamatan Perpustakaan Utama Yang Dirujuk:
- Log4j (2021): Kelemahan kritikal dalam perpustakaan logging Java yang menjejaskan berjuta-juta aplikasi
- npm left-pad (2016): Penyingkiran pakej telah merosakkan beribu-ribu projek JavaScript yang bergantung kepada fungsi utiliti 11 baris
LLM sebagai Alat Penemuan Perpustakaan
Bertentangan dengan kebimbangan mengenai LLM menggantikan perpustakaan, sesetengah pembangun melaporkan bahawa alat AI sebenarnya membantu mereka menemui dan menggunakan perpustakaan yang sesuai dengan lebih berkesan. Alat-alat ini boleh menyediakan contoh penggunaan dengan serta-merta dan mengurangkan geseran mengintegrasikan kebergantungan baru ke dalam projek. Daripada menulis penyelesaian tersuai yang lebih rendah, pembangun boleh menilai dengan cepat sama ada perpustakaan sedia ada memenuhi keperluan mereka.
Kami akhirnya mempunyai alat yang boleh belajar daripada semua perpustakaan dan abstraksi yang perlu sesuai dengan keperluan semua orang, dan mengekstrak hanya bahagian-bahagian yang sebenarnya relevan kepada masalah dan domain kami.
Pendekatan ini membolehkan penyelesaian yang lebih tersasar dengan permukaan serangan yang lebih kecil, kerana pembangun boleh menjana kod khusus domain yang menggabungkan corak terbukti tanpa membawa overhed perpustakaan yang tidak perlu.
Hujah Utama Untuk Pembangunan Berbantu LLM:
- Mengurangkan geseran dalam penemuan dan integrasi perpustakaan
- Penjanaan kod khusus domain dengan permukaan serangan yang lebih kecil
- Akses segera kepada contoh penggunaan dan dokumentasi
- Keupayaan untuk mengekstrak corak yang relevan tanpa beban penuh perpustakaan
- Keupayaan pembelajaran dan penerokaan yang dipertingkatkan
Keseimbangan Antara Inovasi dan Kebolehpercayaan
Perdebatan ini mendedahkan ketegangan asas dalam pembangunan perisian moden. Pasukan yang bekerja pada sistem kritikal sering lebih suka kebolehramalan kod tersuai berbanding ketidakpastian kebergantungan luaran. Mereka berpendapat bahawa menangani pepijat dalam kod mereka sendiri adalah lebih baik daripada menguruskan perpustakaan yang tidak digunakan lagi atau kemas kini versi yang merosakkan.
Walau bagaimanapun, pendekatan ini datang dengan pertukaran. Menulis pelaksanaan tersuai mengambil lebih banyak masa dan mungkin terlepas kes tepi yang telah diselesaikan oleh perpustakaan yang telah ditetapkan. Pilihan sering bergantung pada kes penggunaan khusus, kepakaran pasukan, dan toleransi risiko organisasi.
Hujah Utama Menentang Penggunaan Perpustakaan:
- Kelemahan keselamatan dan peluasan permukaan serangan
- Pembengkakan kebergantungan (pakej tunggal memasang berpuluh perpustakaan)
- Beban penyelenggaraan untuk memastikan kebergantungan sentiasa dikemas kini
- Perubahan yang merosakkan dalam kemas kini versi
- Keperluan untuk penelitian menyeluruh dan semakan kod
Kesimpulan
Perbincangan ini menyerlahkan bahawa kedua-dua LLM dan perpustakaan mempunyai tempat mereka dalam aliran kerja pembangunan moden. Daripada melihat mereka sebagai pendekatan yang bersaing, pasukan yang berjaya sedang belajar menggunakan setiap alat dengan sewajarnya. LLM cemerlang dalam menjana penyelesaian tersasar dan membantu pembangun memahami API perpustakaan, manakala perpustakaan yang telah ditetapkan menyediakan penyelesaian yang telah diuji pertempuran untuk masalah kompleks. Kuncinya adalah mengetahui bila menggunakan setiap pendekatan berdasarkan keperluan keselamatan, kekangan projek, dan pertimbangan penyelenggaraan jangka panjang.
Rujukan: Libraries are under-used. LLMs make this problem worse.