Kebangkitan Model Bahasa Besar (LLM) seperti ChatGPT dan GitHub Copilot mencipta kesan sampingan yang tidak dijangka dalam pembangunan perisian. Alat AI ini berfungsi dengan lebih baik menggunakan bahasa pengaturcaraan popular seperti Python dan JavaScript, menyebabkan pembangun meninggalkan bahasa yang lebih baru atau khusus demi memilih bahasa yang paling difahami oleh AI.
Masalah Dominasi Python
LLM menunjukkan tahap prestasi yang berbeza secara dramatik bergantung kepada bahasa pengaturcaraan yang digunakan. Data penyelidikan mendedahkan bahawa model ini cemerlang dengan bahasa yang kerap muncul dalam data latihan mereka, manakala bergelut dengan ketara apabila menggunakan bahasa yang kurang biasa. Malah bahasa pengaturcaraan yang mantap dengan berjuta-juta pengguna mengalami prestasi LLM yang lemah jika bahasa tersebut tidak diwakili dengan baik semasa latihan AI.
Ini mewujudkan kitaran yang membimbangkan. Pembangun semakin memilih Python bukan kerana ia adalah alat terbaik untuk kerja khusus mereka, tetapi kerana ia adalah bahasa yang paling berkesan dibantu oleh pembantu AI mereka. Seorang pembangun yang bekerja pada bahasa skrip baharu menyatakan bagaimana bakal pengguna kini menolak untuk mempelajari bahasa baharu, dengan berkata LLM boleh menjana kod Python sahaja, walaupun ia lebih buruk, dua kali lebih panjang, dan tidak berfungsi dengan baik.
Prestasi LLM Mengikut Bahasa Pengaturcaraan
- Prestasi Tinggi: Python , JavaScript , TypeScript (diwakili dengan baik dalam data latihan)
- Prestasi Rendah: Bahasa khusus domain, bahasa yang lebih baharu, bahasa khusus niche
- Dapatan Penyelidikan: Prestasi menurun secara mendadak apabila bahasa menjadi lebih khusus, walaupun untuk bahasa yang telah mantap dengan berjuta-juta pengguna
Bahasa Khusus Domain Terancam
Impak paling teruk menimpa Bahasa Khusus Domain (DSL) - bahasa pengaturcaraan khusus yang direka untuk tugas tertentu. Bahasa ini secara tradisinya menawarkan kelebihan utama dengan menjadikan jenis program tertentu lebih mudah ditulis dan kurang terdedah kepada ralat. Sebagai contoh, sistem dialog untuk permainan video mungkin menggunakan format yang mudah dan boleh dibaca berbanding panggilan API yang bertele-tele.
Walau bagaimanapun, DSL menghadapi beban berganda dalam era LLM. Bukan sahaja pereka bahasa mesti melaburkan masa dan sumber untuk mencipta bahasa dan alatnya, tetapi pengguna juga mesti mengorbankan bantuan AI apabila bekerja dengan bahasa khusus ini. Ini meningkatkan halangan dengan ketara untuk penggunaan bahasa baharu.
Penyelesaian dan Adaptasi yang Muncul
Komuniti bahasa pengaturcaraan tidak menyerah kalah begitu sahaja. Beberapa pendekatan yang menjanjikan sedang muncul untuk merapatkan jurang antara bahasa khusus dan keupayaan LLM.
Satu strategi melibatkan penggunaan Python sebagai bahasa perantaraan. Penyelidik telah menemui kejayaan dengan meminta LLM menjana kod dalam bahasa yang biasa terlebih dahulu, kemudian menterjemahkannya secara automatik kepada bahasa khusus. Pendekatan ini memanfaatkan kekuatan AI dengan bahasa popular sambil tetap memberikan faedah reka bentuk khusus domain.
Arah lain memfokuskan pada penciptaan bahasa yang berfungsi lebih baik dengan aliran kerja pembangunan berbantu AI. Sesetengah pereka sedang meneroka cara untuk menggabungkan kod formal dengan penerangan bahasa semula jadi tidak formal, membolehkan pembangun menulis bahagian menarik secara manual sambil membiarkan AI mengendalikan sambungan rutin dan kod boilerplate.
Penyelidik dan pereka bahasa pengaturcaraan bekerja di bawah andaian yang salah bahawa pengamal pengaturcaraan sebenarnya mahukan 'bahasa dengan sintaks dan semantik yang disesuaikan untuk domain tertentu', atau mana-mana ciri bahasa yang benar-benar mewah.
Penyelesaian Baru Muncul untuk Integrasi DSL-LLM
- Terjemahan Perantara Python: Menjana kod dalam Python terlebih dahulu, kemudian menterjemah secara automatik kepada bahasa khusus
- Penjambatan Formal-Tidak Formal: Menggabungkan pengekodan manual untuk logik kompleks dengan boilerplate yang dijana AI dan sambungan
- Integrasi Bahasa Pengesahan: Menggunakan LLM untuk menjana kod dengan spesifikasi yang boleh disahkan secara automatik
- Reka Bentuk Semantik: Mencipta DSL dengan sintaks yang boleh dibaca manusia dan bermakna yang dapat difahami dengan lebih baik oleh LLM
Risiko Genangan
Kebimbangan yang lebih luas melangkaui bahasa pengaturcaraan kepada kerangka kerja dan pendekatan pembangunan. Kuasa yang sama yang mendorong pembangun ke arah Python juga memihak kepada kerangka kerja lama yang mantap berbanding inovasi yang lebih baru. Ini mewujudkan gelung maklum balas di mana pembangun manusia bergantung kepada apa yang paling difahami oleh LLM, manakala LLM belajar terutamanya daripada apa yang sedang ditulis oleh manusia pada masa ini.
Sesetengah pakar bimbang ini boleh membekukan evolusi bahasa pengaturcaraan sepenuhnya. Jika pembangun berhenti bereksperimen dengan ciri bahasa baharu kerana alat AI mereka tidak memahaminya, dan alat AI tidak pernah mempelajari ciri ini kerana pembangun tidak menggunakannya, inovasi boleh terhenti sama sekali.
Melihat ke Hadapan
Walaupun menghadapi cabaran ini, terdapat sebab untuk optimis. LLM semakin baik dalam bekerja dengan sintaks semantik yang boleh dibaca manusia - menunjukkan bahawa bahasa yang direka dengan baik dengan kata kunci yang jelas dan bermakna mungkin sebenarnya mempunyai kelebihan dalam dunia berbantu AI. Selain itu, apabila latihan LLM menjadi lebih kerap dan kurang mahal, selang masa antara ciri bahasa baharu muncul dan alat AI memahaminya sepatutnya mengecil.
Kuncinya mungkin mengiktiraf bahawa bahasa pengaturcaraan kini perlu melayani dua tuan: pembangun manusia dan pembantu AI. Bahasa masa depan yang paling berjaya berkemungkinan adalah yang boleh memuaskan kedua-dua khalayak tanpa menjejaskan faedah teras yang menjadikan bahasa khusus berharga pada mulanya.
Komuniti reka bentuk bahasa pengaturcaraan menghadapi detik genting. Pilihan yang dibuat sekarang tentang cara menyesuaikan diri dengan bantuan AI boleh menentukan sama ada kita akan melihat inovasi berterusan dalam cara kita menyatakan idea pengiraan, atau sama ada kita akan menetap dalam dunia di mana segala-galanya ditulis dalam Python semata-mata kerana itulah yang paling difahami oleh mesin.
Rujukan: Programming Language Design in the Era of LLMs: A Return to Mediocrity?