Dalam landskap bahasa pengaturcaraan yang sentiasa berkembang, pembangun sentiasa mencari alat yang lebih baik yang mengatasi kelemahan pilihan sedia ada sambil mengekalkan kekuatan mereka. Bahasa pengaturcaraan C3 telah mendapat perhatian sebagai alternatif yang menjanjikan kepada C, menawarkan ciri-ciri moden sambil mengekalkan keserasian dengan ABI (Antara Muka Binari Aplikasi) C.
Pilihan Sintaks Mencetuskan Perbahasan Komuniti
Salah satu aspek C3 yang paling banyak dibincangkan dalam komuniti pembangun ialah pilihan sintaksnya. Penggunaan ::
untuk resolusi modul telah menghasilkan pendapat yang kuat. Sesetengah pembangun mendapatinya terlalu panjang berbanding dengan notasi titik tunggal yang digunakan dalam bahasa seperti D. Walau bagaimanapun, yang lain mempertahankan keputusan reka bentuk ini, menunjukkan bahawa ia memudahkan resolusi modul berbanding pengenal.
::
memudahkan resolusi modul berbanding pengenal. Dalam C3 terdapat sesuatu yang dipanggil 'pemendekkan laluan', yang membolehkan anda menggunakanfoo::bar()
sebagai ganti sesuatu sepertistd::baz::foo::bar()
. Untuk melakukan sesuatu yang serupa dengan.
adalah bermasalah, kerana anda tidak tahu di mana laluan berakhir.
Perbahasan ini menyerlahkan ketegangan asas dalam reka bentuk bahasa antara kejelasan dan keringkasan. Walaupun sesetengah pembangun mengutamakan sintaks yang bersih dan minimal, yang lain menghargai notasi eksplisit yang mengurangkan kekaburan, terutamanya dalam kod yang kompleks.
Keserasian ABI C sebagai Kelebihan Utama
Ramai pembangun dalam komuniti menyerlahkan keserasian ABI C oleh C3 sebagai salah satu kelebihan terkuatnya. Ciri ini membolehkan pengaturcara menggabungkan kod C dan C3 dalam projek yang sama tanpa geseran, menjadikan penggunaan secara berperingkat mungkin. Beberapa pengguna melaporkan berjaya mengintegrasikan perpustakaan C dengan C3 dengan usaha minimal, sering mendapatinya lebih mudah berbanding dengan alternatif C lain seperti Zig atau Odin.
Keupayaan untuk memanfaatkan kod C sedia ada sambil secara beransur-ansur memperkenalkan ciri-ciri bahasa moden menangani masalah umum bagi pengaturcara sistem. Tidak seperti perubahan yang lebih radikal dari C, C3 membolehkan pembangun mendapat manfaat daripada perpustakaan dan alat C yang telah wujud selama berdekad sambil menulis kod yang lebih bersih dan selamat.
Kedudukan Di Antara Alternatif C Lain
Komuniti sering membandingkan C3 dengan alternatif C moden yang lain, terutamanya Zig dan Odin. Menurut pencipta bahasa ini, C3 berkongsi lebih banyak persamaan dengan falsafah Odin yang mengutamakan keseronokan pengaturcaraan berbanding dengan pendekatan Zig, yang cenderung menekankan keteguhan melalui kekangan.
C3 meletakkan dirinya sebagai bahasa yang memperbaiki C tanpa mengubah pendekatan asasnya secara dramatik. Ia mengelakkan kerumitan C++ sambil menambah ciri-ciri yang memudahkan kehidupan yang menjadikan pembangunan lebih menyenangkan dan kurang terdedah kepada kesilapan. Pendekatan pertengahan ini nampaknya mendapat sambutan daripada pembangun yang menghargai kesederhanaan C tetapi kecewa dengan perangkap terkenalnya.
Penambahbaikan Praktikal Berbanding C
Ahli komuniti terutamanya menghargai beberapa penambahbaikan khusus yang dilakukan oleh C3 berbanding C. Perubahan kepada tingkah laku switch/case, menjadikan breaks tersirat dan bukannya memerlukan mereka untuk menghalang fall-through, telah ditonjolkan sebagai penambahbaikan yang dialu-alukan. Penambahan modul untuk organisasi kod yang lebih baik, slices untuk pengendalian array yang lebih selamat, dan sokongan UTF-8 terbina dalam juga sering disebut sebagai manfaat.
Penambahbaikan praktikal ini menangani banyak sumber biasa bug dan kelemahan keselamatan dalam kod C, sambil mengekalkan prestasi dan kawalan yang menjadikan C menarik untuk pengaturcaraan sistem.
Ciri-ciri Utama C3
- Tiada fail pengepala wajib
- Penamaan ruang pada tahap modul
- Sistem makro parametrik
- Keserasian C ABI
- Hirisan untuk pengendalian tatasusunan yang lebih selamat
- Sokongan UTF-8 terbina dalam
- Refleksi masa kompilasi
- Fungsi "Throw" untuk pengendalian ralat
- Syarat pra dan pasca
- Kurang kelakuan yang tidak ditentukan
Sokongan Platform
C3 kini menyediakan pengkompil asli untuk:
- Windows x64
- macOS arm64/intel
- Linux x64
- Linux ARMv64
- Linux RiscV64
- Linux RiscV32
- FreeBSD x64/x86
- OpenBSD x64/x86
- Haiku(64)
Cabaran Penggunaan
Walaupun terdapat semangat untuk reka bentuk C3, beberapa ahli komuniti menyatakan kebimbangan tentang cabaran praktikal dalam menggunakan bahasa baru. Masalah pulau - di mana pembangun yang menggunakan bahasa yang kurang popular mendapati diri mereka terpencil dari ekosistem pilihan yang lebih mantap - adalah halangan yang ketara.
Ketersediaan perpustakaan, sumber pembelajaran, dan pembangun berpengalaman kekal terhad berbanding dengan C. Ini mewujudkan masalah ayam dan telur yang dihadapi oleh semua bahasa pengaturcaraan baru: penggunaan meluas memerlukan ekosistem yang kukuh, tetapi membina ekosistem itu memerlukan penggunaan meluas.
C3 kini berada pada versi 0.7.2, dengan pembangunan aktif berterusan. Walaupun ia masih pra-1.0, pembangun sudah menggunakannya untuk projek peribadi dan meneroka potensinya untuk aplikasi yang lebih serius. Seperti mana-mana bahasa yang baru muncul, kejayaan jangka panjangnya akan bergantung pada pembinaan massa kritikal pembangun, perpustakaan, dan kes penggunaan yang menunjukkan kelebihannya berbanding C dan alternatif moden yang lain.
Rujukan: C3 Language