Pembangun Mendapati Penjanaan Kod AI Berfungsi Lebih Baik dengan Bahasa Bertulis Walaupun Terdapat Kebimbangan Data Latihan

Pasukan Komuniti BigGo
Pembangun Mendapati Penjanaan Kod AI Berfungsi Lebih Baik dengan Bahasa Bertulis Walaupun Terdapat Kebimbangan Data Latihan

Komuniti pengaturcaraan sedang aktif membahaskan sama ada bahasa bertulis seperti TypeScript, Rust, dan Go lebih sesuai untuk pengkodan berbantukan AI berbanding bahasa dinamik seperti Python. Perbincangan ini telah mendapat momentum apabila lebih ramai pembangun bereksperimen dengan alat pengkodan AI seperti Claude Code dan melaporkan pengalaman mereka dengan bahasa pengaturcaraan yang berbeza.

Perbualan ini tertumpu pada pemerhatian utama: alat AI nampaknya menghasilkan kod yang lebih boleh dipercayai apabila bekerja dengan bahasa yang mempunyai sistem jenis yang kuat dan pemeriksaan masa kompilasi. Ini mewujudkan paradoks yang menarik, kerana ramai pembangun secara tradisinya lebih suka Python untuk prototaip pantas dan eksperimen.

Bahasa Pengaturcaraan Utama yang Dibincangkan:

  • TypeScript: Penaipan beransur-ansur untuk JavaScript dengan pemeriksaan masa kompilasi
  • Rust: Bahasa pengaturcaraan sistem dengan jaminan keselamatan memori yang kuat
  • Go: Bahasa bertaip statik dengan masa kompilasi yang pantas
  • Python: Bahasa dinamik dengan petunjuk jenis pilihan melalui anotasi jenis
  • JavaScript: Bahasa dinamik yang biasa digunakan untuk pembangunan web

Kelebihan Keselamatan Masa Kompilasi

Hujah utama untuk bahasa bertulis berkisar pada gelung maklum balas segera. Apabila AI menjana kod dalam TypeScript atau Rust, pengkompil dengan cepat menangkap ralat dan memberikan maklum balas khusus tentang apa yang perlu diperbaiki. Ini membolehkan AI mengulang dan membetulkan kesilapan sebelum kod dijalankan. Sebaliknya, ralat Python sering muncul hanya semasa runtime, menjadikannya lebih sukar untuk menangkap masalah awal dalam proses pembangunan.

Beberapa pembangun telah melaporkan kejayaan menguruskan pangkalan kod yang besar dalam bahasa yang mereka tidak fasih, berkat jaring keselamatan ini. Sistem jenis bertindak seperti panduan, membantu kedua-dua AI dan pembangun kekal di landasan yang betul walaupun ketika bekerja dengan sintaks atau corak yang tidak biasa.

Hujah Balas Data Latihan

Walau bagaimanapun, tidak semua orang bersetuju dengan penilaian ini. Sebahagian besar komuniti menunjukkan faktor penting: ketersediaan data latihan. Python telah digunakan secara meluas dalam projek sumber terbuka dan konteks pendidikan selama bertahun-tahun, bermakna model AI berkemungkinan telah melihat lebih banyak kod Python semasa latihan berbanding bahasa yang lebih baru atau lebih khusus seperti Rust.

Kelimpahan contoh latihan ini secara teorinya boleh menjadikan alat AI lebih baik dalam menjana kod Python, tanpa mengira faedah sistem jenis. Sesetengah pembangun berhujah bahawa kelebihan yang dilihat pada bahasa bertulis mungkin hanya mencerminkan kualiti dan corak data latihan yang tersedia dan bukannya ciri bahasa yang wujud.

Pengalaman Dunia Sebenar Berbeza-beza

Pengalaman komuniti menggambarkan gambaran yang bercampur-campur. Sesetengah pembangun melaporkan hasil yang sangat baik dengan kod Go yang dijana AI, memuji kekerapan bahasa dan struktur yang jelas. Yang lain mendapati bahawa alat AI bergelut dengan sistem jenis yang kompleks, sering menggunakan penyelesaian seperti menggunakan jenis any dalam TypeScript atau makro todo!() dalam Rust apabila berhadapan dengan kekangan jenis yang mencabar.

Claude akan berhalusinasi tentang kod Rust kerana ia adalah model statistik, bukan alat analisis statik. Apabila ia dapat mencipta kod yang dikompil, kod tersebut sentiasa tidak cekap dan hodoh.

Keberkesanan nampaknya sangat bergantung pada alat AI tertentu, kerumitan tugas, dan keupayaan pembangun untuk memberikan kekangan dan maklum balas yang jelas kepada sistem AI.

Isu Pengkodan AI Biasa Mengikut Bahasa:

  • TypeScript: Penggunaan berlebihan jenis "any" untuk mengelakkan pemeriksaan jenis
  • Rust: Menggunakan makro "todo!()" dan "unwrap()" untuk pengendalian ralat
  • Python: Tiada anotasi jenis dan ralat masa jalan
  • Am: Terperangkap dalam gelung pembetulan ralat dan menghasilkan kod yang tidak cekap

Struktur Rangka Kerja Juga Penting

Perspektif menarik muncul mengenai kepentingan rangka kerja yang berpendirian tanpa mengira penaipan. Sesetengah pembangun menyatakan bahawa alat AI berprestasi sangat baik dengan rangka kerja seperti Ruby on Rails, yang mempunyai konvensyen dan corak yang mantap, walaupun Ruby tidak bertulis ketat. Ini menunjukkan bahawa struktur dan konvensyen yang jelas mungkin sama pentingnya dengan sistem jenis untuk penjanaan kod AI.

Perdebatan ini menyerlahkan persoalan yang lebih luas tentang bagaimana alat AI belajar dan menggunakan pengetahuan pengaturcaraan. Sama ada melalui kekangan jenis, konvensyen rangka kerja, atau corak data latihan, AI nampaknya berfungsi terbaik apabila diberi pagar penghadang yang jelas dan maklum balas segera tentang ketepatan kod.

Apabila alat pengkodan AI terus berkembang, perbincangan ini berkemungkinan akan mempengaruhi cara pembangun memilih bahasa dan rangka kerja untuk projek baru, berpotensi mengalihkan keutamaan ke arah bahasa yang menawarkan pengalaman kerjasama terbaik dengan pembantu AI.

Rujukan: Typed languages are better suited for vibecoding