- Vala ist eine Programmiersprache, die darauf abzielt, GNOME-Entwicklern moderne Sprachfunktionen bereitzustellen
- Im Vergleich zu in C geschriebenen Anwendungen und Bibliotheken stellt sie keine zusätzlichen Laufzeitanforderungen und verwendet keine andere ABI
- Unterstützte moderne Sprachfunktionen: Interfaces, Properties, Signals,
foreach, Lambda-Ausdrücke, Typinferenz für lokale Variablen, Generics, Non-Null-Typen, Speicherverwaltung, Exception Handling
- Sie ermöglicht komfortables Schreiben von Code mit objektorientiertem Ansatz und Abstraktionen auf hohem Niveau und ist tief in GNOME-Technologien wie GObject und GTK integriert
- Der Code wird zu sehr schnellen nativen Binärdateien kompiliert. Vorhandener C-Code kann in Vala-Programmen wiederverwendet werden, oder es kann aus Vala C-Code erzeugt werden
Kompatibilität mit bestehenden C-Bibliotheken
- Vala wurde so entworfen, dass es ohne Runtime-Bindings auf bestehende C-Bibliotheken zugreifen kann, insbesondere auf GObject-basierte Bibliotheken
- Wenn nur eine API-Datei mit Klassen- und Methodendeklarationen in Vala-Syntax vorhanden ist, kann die Bibliothek mit Vala verwendet werden
- Vala wird derzeit mit Bindings für GLib und GTK+ ausgeliefert
Der Vala-Compiler valac
valac ist ein selbstgehosteter Compiler, der Vala-Quellcode in C-Quellcode und Header-Dateien umwandelt
- Er verwendet das GObject-Typsystem, um die im Vala-Quellcode deklarierten Klassen und Interfaces zu erzeugen
- Die Syntax von Vala ähnelt C# und wurde angepasst, damit sie besser zum GObject-Typsystem passt
In Vala geschriebene Klassen und Methoden aus C verwenden
- Wenn nur die von einer Vala-Bibliothek erzeugten Header-Dateien installiert werden, kann eine C-Anwendung auf die GObject-basierte API der Vala-Bibliothek auf übliche Weise zugreifen
- Da der Vala-Parser als Bibliothek implementiert ist und alle Informationen zur Compile-Zeit beim Erzeugen von Bindings genutzt werden können, dürfte es auch einfach sein, Binding-Generatoren zu schreiben, mit denen Anwendungen etwa in C# auf Vala-Bibliotheken zugreifen können
Meinung von GN⁺
- Vala hat den Vorteil, eine objektorientierte Sprache mit C-ähnlicher Syntax zu sein, die gut in GNOME-Technologien integriert ist. Besonders für die Entwicklung von GUI-Anwendungen ist sie optimiert und lässt sich leicht mit GTK, Granite usw. verbinden
- Vala ist auf die Entwicklung der GNOME-Desktop-Umgebung spezialisiert und dürfte in anderen Bereichen nur begrenzt zum Einsatz kommen
- Vala mit seiner C#-ähnlichen Syntax dürfte Entwicklern, die mit C# vertraut sind, den Einstieg in die GNOME-Entwicklung erleichtern
- Das Ziel von Vala, moderne Sprachfunktionen zu unterstützen und zugleich die Kompatibilität mit bestehenden C-Bibliotheken wichtig zu nehmen, ist erfrischend, allerdings dürfte dadurch die Eigenständigkeit der Sprache selbst zwangsläufig geringer ausfallen
- Ein Blick auf Vala-Projekte zeigt, dass es vor allem viele Desktop-Apps für GNOME oder elementary OS gibt, die Sprache aber auch für Server-Programmierung genutzt werden kann. Allerdings ist das Ökosystem in diesem Bereich noch eher schwach
- Wie weit Vala verbreitet sein wird, ist offen, aber im GNOME-Ökosystem könnte der Einsatz von Vala anstelle von C durchaus Produktivitätsgewinne bringen
- Es gibt auch eine Sprache namens Genie, deren Syntax Vala ähnelt und die GNOME-Technologien nutzen kann. Charakteristisch ist, dass Codeblöcke wie in Python durch Einrückung getrennt werden. Sie ist als Alternative zu Vala einen Blick wert
1 Kommentare
Hacker-News-Kommentare
valac) kompiliert.valadoc.org) erleichtert die Entwicklung.gtk-rs.org).