- Vala adalah bahasa pemrograman yang bertujuan menyediakan fitur bahasa pemrograman modern bagi para pengembang GNOME
- Dibandingkan aplikasi dan pustaka yang ditulis dalam C, Vala tidak menambahkan kebutuhan runtime tambahan maupun menggunakan ABI yang berbeda
- Fitur bahasa modern yang didukung: interface, property, signal, foreach, ekspresi lambda, inferensi tipe untuk variabel lokal, generic, tipe non-null, manajemen memori, penanganan pengecualian
- Dengan pendekatan berorientasi objek dan abstraksi tingkat tinggi, kode dapat ditulis dengan lebih nyaman, serta terintegrasi erat dengan teknologi GNOME seperti GObject dan GTK
- Kode dikompilasi menjadi biner native yang sangat cepat. Kode C yang sudah ada dapat digunakan kembali dalam program Vala, atau Vala dapat menghasilkan kode C
Kompatibilitas dengan pustaka C yang sudah ada
- Vala dirancang agar dapat mengakses pustaka C yang sudah ada, terutama pustaka berbasis GObject, tanpa runtime binding
- Selama ada file API yang memuat deklarasi kelas dan metode dalam sintaks Vala, pustaka tersebut dapat digunakan bersama Vala
- Saat ini Vala disertai binding untuk GLib dan GTK+
Kompiler Vala, valac
valac adalah kompiler self-hosting yang mengubah kode sumber Vala menjadi kode sumber C dan file header
- Untuk menghasilkan kelas dan interface yang dideklarasikan dalam kode sumber Vala, kompiler ini menggunakan sistem tipe GObject
- Sintaks Vala mirip dengan C#, tetapi telah disesuaikan agar lebih cocok dengan sistem tipe GObject
Menggunakan kelas dan metode yang ditulis dalam Vala dari C
- Dengan hanya memasang file header yang dihasilkan dari pustaka Vala, aplikasi C dapat mengakses API berbasis GObject dari pustaka Vala dengan cara yang umum
- Karena parser Vala ditulis sebagai pustaka sehingga semua informasi saat waktu kompilasi dapat digunakan saat pembuatan binding, akan cukup mudah juga menulis generator binding agar aplikasi yang ditulis dalam bahasa seperti C# dapat mengakses pustaka Vala
Pendapat GN⁺
- Kelebihan Vala adalah sebagai bahasa berorientasi objek dengan sintaks mirip C yang terintegrasi baik dengan teknologi GNOME. Khususnya, bahasa ini dioptimalkan untuk pengembangan aplikasi GUI dan mudah dihubungkan dengan GTK, Granite, dan lainnya
- Vala adalah bahasa yang dikhususkan untuk pengembangan lingkungan desktop GNOME, sehingga di bidang lain pemanfaatannya tampaknya tidak akan terlalu besar
- Dengan sintaks yang mirip C#, Vala dapat membantu pengembang yang sudah akrab dengan C# untuk berpartisipasi dalam pengembangan GNOME
- Tujuan Vala yang ingin mendukung fitur bahasa modern sambil tetap menekankan kompatibilitas dengan pustaka C yang sudah ada terasa segar, tetapi akibatnya orisinalitas bahasa itu sendiri mungkin menjadi lebih rendah
- Jika melihat proyek-proyek Vala, kebanyakan berupa aplikasi desktop untuk GNOME atau elementary OS, tetapi ini juga bahasa yang dapat digunakan untuk pemrograman server. Hanya saja, ekosistemnya di bidang itu masih cenderung kurang matang
- Masih belum jelas seberapa luas Vala akan digunakan, tetapi di ekosistem GNOME, penggunaan Vala sebagai pengganti C layak diharapkan dapat meningkatkan produktivitas
- Ada juga bahasa bernama Genie yang sintaksnya mirip Vala dan dapat menggunakan teknologi GNOME. Ciri khasnya adalah pemisahan blok kode berdasarkan indentasi seperti Python. Ini layak dipertimbangkan sebagai alternatif Vala
1 komentar
Opini Hacker News
valac).valadoc.org) juga mempermudah pengembangan.gtk-rs.org).