Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
mer sicher gehen möchte, schnappt sich<br />
das Quellcode-Archiv aus dem Vala-Wiki<br />
[1]. Für die Übersetzung benötigt er den<br />
C-Compiler, »make«, »flex«, »bison« sowie<br />
die Entwicklerpakete für Glib 2.0<br />
und Gobject 2.0 (unter Ubuntu im Paket<br />
»libglib2.0‐dev«). Die Übersetzung erfolgt<br />
dann mit dem bekannten Dreisprung<br />
»./configure; make; sudo make install«.<br />
Ein »sudo ldconfig« richtet die Bibliothek<br />
»libvala« ein.<br />
Vala-Quellcode liegt gewöhnlich in einer<br />
Textdatei mit der Endung ».vala«. Diese<br />
bekommt der Vala-Compiler mit »valac<br />
hallowelt.vala« vorgesetzt, der daraus<br />
ein Programm erzeugt – im Beispiel namens<br />
»hallowelt«. Wer am produzierten<br />
C-Code interessiert ist, lässt diesen mit<br />
»‐c« erzeugen:<br />
valac ‐c hallowelt.vala<br />
Vala-Bibliotheken, etwa »libgee.so«, sind<br />
immer auch C-Bibliotheken. Um sie<br />
nutzen zu können, benötigt der Vala-<br />
Compiler ein paar Zusatzinformationen<br />
in einer so genannten VAPI-Datei. Sie<br />
verrät, welche Funktionen die C-Bibliothek<br />
bereitstellt. Für die meisten Gnome-<br />
Bibliotheken haben die Vala-Entwickler<br />
bereits passende VAPI-Dateien erzeugt.<br />
Ausführliche Informationen hierzu liefert<br />
das Vala-Wiki [1].<br />
Die Dokumentation ist Valas größte Baustelle.<br />
Als einzige offizielle Quelle ist das<br />
Wiki noch lückenhaft, unvollständig und<br />
teilweise veraltet. Einsteigern sei dennoch<br />
das (lange) Tutorial empfohlen [6].<br />
Für Umsteiger von C# und Java stehen<br />
gesonderte Hinweise bereit ([7], [8]).<br />
Status quo<br />
Vala selbst versucht C# und Java mit<br />
Gobject zu verheiraten. Dabei gelten allerdings<br />
viele kleine Ausnahmen, die der<br />
Programmierer im Hinterkopf behalten<br />
muss. Darüber hinaus besitzt Vala keine<br />
richtige Garbage Collection, sondern nur<br />
eine einfache Referenzzählung. Wer verhindern<br />
will, dass der Speicher überläuft,<br />
muss folglich die Referenzen genau im<br />
Auge behalten.<br />
Häufig führen in Vala gleich mehrere<br />
Wege zum Ziel, etwa bei der Definition<br />
von Klassen. In der Praxis stiftet das<br />
besonders dann Verwirrung, wenn man<br />
Code von verschiedenen Entwicklern lesen<br />
muss. Unter dem Strich bietet sich<br />
Vala vor allem für Umsteiger von C# oder<br />
Java an, die möglichst flott ablaufende<br />
Programme für GTK+ oder Gnome produzieren<br />
möchten, aber die Arbeit mit C<br />
scheuen. (mhu) <br />
n<br />
Listing 11: Generics<br />
01 public class Garage : GLib.Object {<br />
02 private A wagen;<br />
03 <br />
04 public void parke(A auto) {<br />
05 this.wagen = auto;<br />
06 }<br />
07 }<br />
Vala 09/2013<br />
Programmieren<br />
www.linux-magazin.de<br />
97