Biz & IT —

Vala: high-level programming with less fat

Vala is a high-level object-oriented programming language that compiles to C, …

Vala is a relatively new object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system. Vala is syntactically similar to C# and includes useful language features like anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements.

Since Vala code compiles down to C and uses the GObject system, the vast majority of existing GNOME and GTK libraries can be used in Vala with very little effort, and Vala libraries can be used easily in C programs. The most compelling advantage of Vala compared to other modern high-level language solutions is that Vala applications don't require any kind of special runtime environment or virtual machine. This means that software written in Vala won't incur the performance overhead costs associated with managed code.

The release of Vala 0.13 was announced late last week. The new version has support for a multitude of new library bindings, including D-Bus, GConf, Glade, GTKSourceView, GtkMozEmbed, Hildon, Poppler, GStreamer, and several other libraries. Vala 0.13 also adds improved array handling support and a new "as" operator. The availability of Hildon bindings is particularly significant, because it means that developers can now use Vala to create applications that can run on the Nokia N800 and other Maemo-based environments.

Vala is still a work in progress, but support for the language is growing rapidly. Close GObject integration makes Vala an ideal choice for GNOME development, and the requisite library support is steadily falling into place. Vala's biggest deficiency right now is the lack of documentation. In time, Vala could replace C as the principle language of the GNOME platform.

Ryan Paul / Ryan is an Ars editor emeritus in the field of open source, and and still contributes regularly. He manages developer relations at Montage Studio.