Dalam landskap bahasa pengaturcaraan yang sentiasa berkembang, Jaql muncul sebagai pesaing baharu dalam ruang pengaturcaraan sistem selamat memori. Walau bagaimanapun, perbincangan komuniti mendedahkan kes salah identiti yang menarik, kerana kebanyakan pengulas kelihatan membincangkan Jakt, bahasa pengaturcaraan yang berbeza yang dikaitkan dengan projek SerenityOS, bukannya Jaql itu sendiri.
Kekeliruan Antara Jaql dan Jakt
Perbincangan komuniti terutamanya berkisar tentang Jakt, bahasa pengaturcaraan sistem selamat memori yang dibangunkan sebagai sebahagian daripada projek SerenityOS. Kekeliruan ini boleh difahami memandangkan persamaan dalam nama dan matlamat antara kedua-dua bahasa tersebut. Walaupun artikel ini menerangkan Jaql sebagai bahasa pengaturcaraan sistem selamat memori dengan ciri-ciri seperti pengiraan rujukan automatik dan pengetikan yang kuat, para pengulas membincangkan sejarah pembangunan Jakt, hubungannya dengan SerenityOS, dan statusnya semasa.
Status Semasa Pembangunan Jakt
Berdasarkan pandangan komuniti, Jakt kelihatan berada dalam keadaan tidak aktif. Beberapa pengulas menyatakan bahawa aktiviti pembangunan telah berkurangan dengan ketara, dengan seorang pengguna menunjukkan sejarah komit yang jarang. Bahasa ini pada mulanya dipelopori oleh Andreas Kling, pencipta SerenityOS, tetapi momentum pembangunan kelihatan telah beralih.
Saya menonton beberapa video Andreas bekerja dengan Jakt beberapa tahun lalu tetapi sekarang ia kelihatan agak mati melihat pada sejarah komit.
Pemerhatian ini selaras dengan komen lain yang mencadangkan bahawa Andreas telah beralih untuk memberi tumpuan kepada projek pelayar Ladybird, yang dilaporkan telah memilih Swift sebagai bahasa pilihannya untuk pembangunan masa depan berbanding Jakt.
Swift sebagai Pilihan untuk Ladybird
Sebahagian besar perbincangan berkisar tentang keputusan pasukan pelayar Ladybird (projek yang asalnya bercabang dari pelayar SerenityOS) untuk menggunakan Swift berbanding Jakt atau alternatif lain. Keputusan ini kelihatan telah dibuat melalui apa yang digambarkan oleh seorang pengulas sebagai proses pragmatik di mana ahli pasukan melaksanakan ciri-ciri dalam pelbagai bahasa calon dan akhirnya mendapati Swift paling menyeronokkan untuk digunakan. Model pengaturcaraan berorientasikan objek Swift dilaporkan sesuai dengan keperluan seni bina pelayar web.
Walau bagaimanapun, beberapa ahli komuniti menyatakan kejutan dengan pilihan ini, terutamanya mengenai kebimbangan tentang cabaran keserasian Swift dengan C++. Seorang pengulas menyatakan bahawa Swift memerlukan cabang LLVM Apple, yang berpotensi mengehadkan keserasian dengan persekitaran GNU atau Clang arus perdana.
Keselamatan Memori dan Falsafah Reka Bentuk Bahasa
Kembali kepada subjek sebenar artikel ini, Jaql berkongsi trend industri yang lebih luas ke arah bahasa pengaturcaraan sistem selamat memori. Menurut artikel ini, Jaql menggabungkan ciri-ciri seperti pemeriksaan masa kompilasi, peminjaman, pengesanan jangka hayat, dan pencegahan dereferensi penunjuk null. Ciri-ciri ini selaras dengan penekanan industri yang semakin meningkat terhadap keselamatan memori, yang juga dilihat dalam bahasa seperti Rust.
Artikel ini memperincikan pendekatan Jaql terhadap keselamatan memori, termasuk pencegahan limpahan integer, gelung tak terhingga, limpahan tindanan, perlumbaan data, dan kebocoran memori dalam mod Safe-Jaql. Fokus pada keselamatan sambil mengekalkan keupayaan pengaturcaraan sistem mencerminkan peralihan industri yang berterusan ke arah alternatif yang lebih selamat kepada bahasa tradisional seperti C dan C++.
Ciri-ciri Utama Jaql
-
Ciri-ciri keselamatan memori:
- Pemeriksaan pada masa kompilasi
- Peminjaman (pengesanan)
- Penjejakan jangka hayat
- Tiada dereference penunjuk null
- Pencegahan limpahan integer
- Tiada gelung tak terhingga dalam Safe-Jaql
- Perlindungan limpahan tindanan
- Tiada perlumbaan data
- Tiada kebocoran memori (kecuali dibocorkan secara eksplisit)
-
Reka bentuk bahasa:
- Perbezaan antara jenis "class" boleh ubah dan jenis "data" tidak boleh ubah
- Menggalakkan fungsi kecil (maksimum 2-3 baris setiap kaedah)
- Tiada kesan sampingan
- Sokongan untuk generik dan fungsi peringkat tinggi
- Sistem trait jenis
- Penindihan operator melalui trait
-
Pelaksanaan:
- Pada mulanya dilaksanakan dalam Java untuk kemudahcapaian
- Pengkompil swahosnya sebagai matlamat
- Kebolehoperasian dengan C/C++
Ciri-ciri Bahasa dan Pilihan Reka Bentuk
Reka bentuk Jaql merangkumi ciri-ciri menarik seperti perbezaan antara jenis kelas boleh ubah dan jenis data tidak boleh ubah, serupa dengan pembezaan kelas/struktur Swift. Bahasa ini menggalakkan fungsi kecil dengan kesan sampingan yang minimum dan menyediakan perpustakaan fungsi standard untuk pengurusan data.
Artikel ini juga menyoroti sokongan Jaql untuk generik, fungsi peringkat tinggi, dan sifat jenis, membolehkan corak pengaturcaraan yang fleksibel dan selamat jenis. Ciri-ciri ini meletakkan Jaql sebagai bahasa moden yang bertujuan untuk mengimbangi keselamatan, ekspresi, dan prestasi.
Sebagai kesimpulan, walaupun perbincangan komuniti telah banyak memberi tumpuan kepada bahasa yang berbeza (Jakt), artikel itu sendiri mempersembahkan Jaql sebagai projek yang bercita-cita tinggi dengan fokus yang kuat pada keselamatan memori dan ciri-ciri bahasa moden. Seperti kebanyakan bahasa pengaturcaraan baharu, kejayaannya mungkin bergantung pada penggunaan komuniti, pembangunan berterusan, dan mencari tempatnya dalam landskap bahasa pengaturcaraan sistem selamat memori yang semakin sesak.
Rujukan: Bahasa pengaturcaraan Jaql