26.02.2014 Aufrufe

Linux-Magazin Clean Linux (Vorschau)

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!