Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Programmieren<br />
www.linux-magazin.de Vala 09/2013<br />
92<br />
Vala, eine Programmiersprache für Gnome- und GTK+-Anwendungen<br />
Voilà Vala!<br />
Wer Programme mit GTK+ oder für Gnome schreibt, greift dabei meist zu C oder Python. Mit Vala gibt es jedoch<br />
eine interessante objektorientierte Alternative. Deren Zauber liegt in sprachlichen Anleihen bei C# und<br />
Java sowie in der Integration der Glib-Bibliothek. Tim Schürmann<br />
© Andriy Popov, 123RF.com<br />
den Vorteil, dass Vala-Programme ähnlich<br />
schnell wie C-Programme ablaufen und<br />
sich zudem auf allen Plattformen übersetzen<br />
lassen, auf denen C-Compiler und<br />
Glib-Bibliothek bereitstehen.<br />
Darüber hinaus kann der Programmierer<br />
in Vala alle vorhandenen C-Bibliotheken<br />
nutzen und umgekehrt in Vala<br />
geschriebenen Programmcode in anderen<br />
C-Programmen einsetzen. Bindungen<br />
existieren bereits zu zahlreichen Gnome-<br />
Bibliotheken, Benutzeroberflächen beispielsweise<br />
entstehen wie bei Shotwell<br />
und Geary häufig mittels GTK+.<br />
2006 begann der Informatikstudent Jürg<br />
Billeter eine neue Programmiersprache<br />
zu entwickeln. Als Ausgangspunkt<br />
wählte er die Gobject-Bibliothek. Diese<br />
soll es eigentlich C-Entwicklern ermöglichen,<br />
objektorientiert zu programmieren.<br />
Das GUI-Toolkit GTK+ und viele Gnome-<br />
Bibliotheken nutzen Gobject. Jürg Billeter<br />
verrührte die Konzepte von Gobject<br />
mit C# und Java und taufte das Ergebnis<br />
Vala [1]. Da Gobject ein Teil der Glib ist,<br />
bekommen Vala-Programmierer diese als<br />
Standardbibliothek gratis ins Haus. Auf<br />
01 // Dies ist ein Kommentar ...<br />
02 /* ... und dies auch */<br />
03 int main() {<br />
04 string hallo = "Hallo Welt!\n";<br />
05 print(hallo);<br />
06 return 0;<br />
07 }<br />
Listing 1: Hallo Welt!<br />
Wunsch kümmert sich Vala sogar um die<br />
Speicherverwaltung.<br />
Bindungswillig<br />
Die Entwicklung von Vala ist noch nicht<br />
vollständig abgeschlossen, zum Redaktionsschluss<br />
war Version 0.20.1 aktuell.<br />
Die Sprachsyntax ist jedoch recht stabil:<br />
Seit Mitte 2011 hat es nur kleinere<br />
Optimierungen, Fehlerkorrekturen im<br />
Compiler sowie Anbindungen an weitere<br />
Gnome-Bibliotheken [2] gegeben.<br />
Die Alltagstauglichkeit der Sprache beweisen<br />
zahlreiche in Vala geschriebene<br />
Anwendungen, darunter die Fotoverwaltung<br />
Shotwell (Abbildung 1, [3]) und der<br />
E-Mail-Client Geary [4].<br />
Vala-Programme übersetzt ein Compiler<br />
in C-Quellcode, den dann wiederum ein<br />
C-Compiler zu einer ausführbaren Binärdatei<br />
verarbeitet (Abbildung 2). Das hat<br />
Hallo Vala!<br />
Ein Hallo-Welt-Programm zeigt Listing 1.<br />
Bei seinem Start ruft Vala automatisch die<br />
»main()«-Funktion auf. In ihr legt das<br />
Listing die Variable »hallo« an, die eine<br />
Zeichenkette (»string«) speichert und den<br />
Text »Hallo Welt!\n« aufnimmt. Vala versteht<br />
die üblichen Escape-Zeichen, »\n«<br />
steht im Beispiel für einen Zeilenumbruch.<br />
Die Funktion »print()« bringt den<br />
Text in der Variablen »hallo« auf den Bildschirm.<br />
Abschließend gibt »return« eine<br />
»0« zurück, womit das Programm den<br />
fehlerfreien Ablauf bestätigt. Jede Anweisung<br />
schließt mit einem Semikolon ab.<br />
Typsache<br />
Von C# und Java geerbt hat Vala die<br />
Kontrollstrukturen (»if«, »while«, »for«),<br />
die Vergleichsoperatoren (wie »==«<br />
und »!=«) sowie die Datentypen (etwa<br />
»int« und »bool«). Wie in C besitzen die<br />
meisten Datentypen allerdings auf verschiedenen<br />
Plattformen unterschiedliche<br />
Größen. Für Integerwerte – und nur für<br />
sie – gibt es deshalb auch Datentypen