Vala ist eine objektorientierte Programmiersprache für die Linux-Desktop-Welt, die modernen Komfort wie in C# mit der Effizienz von C verbindet. Entwickelt wurde sie ab 2006 von Jürg Billeter und Raphaël Slinckx; der Compiler valac erzeugt zunächst C-Quellcode, der dann mit gcc zu einer nativen ausführbaren Datei übersetzt wird. Vala nutzt das GObject-Typsystem der GNOME-Plattform — Klassen, Signale und Eigenschaften werden direkt von der Sprache unterstützt.
Erste Schritte
valac --version
valac hello.vala # kompiliert hello.vala nach ./hello
valac --pkg gtk4 hello.vala # Pakete (GIR/VAPI) einbinden
valac --vapi meinelib.vapi lib.vala # VAPI-Datei für Bibliotheken erzeugen
vapigen --pkg glib-2.0 lib.gir # Bindings aus GObject-Introspection
Ein minimales Programm:
void main () {
stdout.printf ("Hallo Welt
");
}
Typische Werkzeuge
valac— der Compiler, der Vala nach C übersetzt (selbst in Vala geschrieben).vapigen— erzeugt VAPI-Bindings aus GIR-Dateien für fremde C-Bibliotheken.--pkg— bindet GNOME-Bibliotheken wie GTK, GLib oder GObject ein.- Kein JIT und kein Garbage Collector — Speicherverwaltung über GLib-Referenzzählung.
Abgrenzung
Vala gehört zu den Sprachen, die direkt für das C/C++-Ökosystem kompilieren, ähnlich wie Rust, aber mit einer deutlich einfacheren Einbindung von C-Bibliotheken. Wer GNOME-Anwendungen mit moderner Syntax schreiben möchte, nutzt Vala statt des umständlichen GObject-C-Codes. Weitere Nischensprachen außerhalb des Mainstreams sind Dylan (dynamische OO) und Inform (interaktive Fiktion).