5 poin oleh GN⁺ 2024-04-09 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2024-04-09
Opini Hacker News
  • Ada pertanyaan apakah Vala baru-baru ini memiliki aktivitas pengembangan yang aktif. Menurut sebuah posting blog dari seorang pengembang GNOME, Vala dipelihara oleh satu pengembang dan tidak direkomendasikan untuk pengembangan baru.
  • Seorang penulis komentar mengatakan bahwa ia baru-baru ini menulis aplikasi dengan Vala dan itu merupakan pengalaman yang menyenangkan. Karena ia menginginkan aplikasi yang berjalan baik di desktop Linux dan PinePhone, Vala sangat cocok, dan menurutnya jauh lebih menyenangkan serta berkinerja lebih baik daripada Python.
  • Vala memiliki bahasa saudara bernama Genie. Keduanya pada dasarnya sama, tetapi Vala menggunakan sintaks mirip C#, sedangkan Genie menggunakan indentasi signifikan seperti Python. Keduanya dikompilasi oleh kompiler yang sama (valac).
  • Secara sintaks, Vala terlihat sangat mirip dengan Swift. Selain sintaks, Vala juga mirip dengan Swift dalam hal reference counting kelas satu, binding bahasa C, dan kompilasi langsung menjadi biner tanpa runtime eksternal.
  • Muncul pertanyaan apakah Vala memiliki ABI yang stabil atau kompatibilitas dengan bahasa tingkat tinggi lain seperti C++ atau ObjC. Ini adalah tantangan sulit yang juga sedang coba dipecahkan oleh Swift.
  • Sulit menemukan bahwa Vala adalah bahasa yang (jauh) lebih produktif atau kuat dibandingkan Java atau C#. Tidak jelas apa keunggulan Vala atau masalah apa yang ingin diselesaikannya.
  • Ada pendapat bahwa salah satu keunggulan Vala adalah banyaknya pustaka native yang dapat diakses berkat kompatibilitasnya dengan GObject. Situs dokumentasi yang sangat baik dengan semua hal di satu tempat (valadoc.org) juga mempermudah pengembangan.
  • Sebagian besar aplikasi "native" di elementary OS disebut ditulis dengan Vala.
  • Seorang penulis komentar yang menyukai Geary mengatakan bahwa ia meneliti Vala karenanya, lalu mendapati bahwa Vala adalah bahasa yang elegan dan bagus untuk membuat program praktis di GNOME. Namun, ia mengaku sudah tidak melihat perkembangan Vala selama 7 tahun terakhir.
  • Penggunaan Rust untuk pengembangan GNOME semakin populer (gtk-rs.org).