Sebuah bahasa pemrograman baru bernama ANIL ( A Nice Intermediate Language ) telah memicu diskusi di komunitas pengembang, dengan reaksi mulai dari kekhawatiran tentang penamaan hingga perdebatan lebih dalam mengenai filosofi desain dan pilihan implementasinya.
Kontroversi Penamaan
Nama bahasa pemrograman ini telah menjadi pusat perhatian yang tidak terduga dalam diskusi, dengan banyak pengembang menunjukkan potensi interpretasi yang canggung. Sementara beberapa anggota komunitas mencatat bahwa Anil adalah nama yang sah di beberapa budaya tertentu, yang lain menyarankan agar akronim tersebut sebaiknya dipertimbangkan kembali untuk audiens internasional.
Filosofi Desain dan Implementasi
ANIL memposisikan dirinya sebagai bahasa hybrid yang menggabungkan elemen dari Python dan C++, dengan fitur pengetikan statis dan kemampuan untuk ditanamkan dalam berkas sumber C. Namun, pendekatan ini telah mengundang reaksi beragam dari komunitas pengembang, khususnya mengenai implementasi fitur-fitur bahasa tertentu.
Saya harus bersikap keras terhadap hal ini. Ini adalah kombinasi yang tidak masuk akal antara sensitivitas spasi putih gaya Python dan kurung kurawal gaya C dengan fitur-fitur acak yang diambil dari keduanya.
Fitur Utama:
- Kelas dengan dukungan template
- Penimpaan fungsi (function overloading)
- Refleksi saat kompilasi
- Anotasi
- Integrasi pustaka standar
- Metode dunder gaya Python
- Kemampuan menghasilkan kode C
Persyaratan:
- Kompilator C
- Python
- clang-format (direkomendasikan)
Alat Pembelajaran vs Bahasa Produksi
Konteks proyek sebagai latihan pembelajaran dalam pengembangan kompilator telah menjadi bagian penting dalam diskusi. Pembuatnya secara eksplisit menyatakan tiga tujuan utama: mempelajari pengembangan kompilator, membangun kompilator yang dapat mengkompilasi dirinya sendiri, dan mengimplementasikan fitur-fitur menarik. Keterbukaan ini telah membantu membingkai proyek secara tepat sebagai upaya edukasi daripada bahasa yang siap untuk produksi.
Kumpulan Fitur dan Pustaka Standar
ANIL mengimplementasikan beberapa fitur penting termasuk kelas, template, function overloading, macro, compile-time reflection, dan anotasi. Bahasa ini juga mengadopsi metode dunder gaya Python, meskipun pilihan ini telah memicu perdebatan tentang manfaat mengimpor konvensi tersebut ke dalam ekosistem bahasa baru.
Proyek ini merepresentasikan studi kasus yang menarik dalam pilihan desain bahasa dan tantangan menciptakan bahasa pemrograman baru, sekaligus menyoroti pentingnya umpan balik komunitas dalam evolusi proyek teknis.