Vala - Sprache und Compiler für das GObject-Typensystem
GObject ohne Kopfschmerzen
von Christian Meyer
07.11.2007
Abschied von C: Vala ist eine neue Programmiersprache samt Compiler, die Gnome-Entwicklern die Vorteile moderner Sprachen wie C# oder Java an die Hand gibt.
Wer Programme in C schreiben möchte und dennoch etwas Komfort erwartet, kommt nicht um eine vernünftige C-Bibliothek herum. GObject, das in der GLib enthalten ist, zeichnet sich seit Jahren als der Standard in diesem Bereich aus. GObject bietet moderne objektorientierte Konzepte wie Klassen, Interfaces, virtuelle Methoden, Unterstützung für Callback-Funktionen und vieles mehr. Praktisch alle Gtk+-Programme, enthalten GObject-Code. Aufgrund seiner C-Natur muss der Programmierer jedoch unweigerlich mehr Code schreiben, als das beispielsweise in Java der Fall ist. Der so genannte Boilerplate-Code ist für manch einen Entwickler zu komplex und schwer zu verstehen, besonders wenn er die Grundlagen zu GObject nicht kennt. Der Schritt in die Richtung, auf C++, C# oder Java zu setzen, scheint auch nicht immer eine geeignete Lösung zu sein. Also am besten eine neue Sprache erfinden?
Eine neue Sprache
Es ist keine triviale Aufgabe, eine neue Programmiersprache zu erfinden, und die meisten Entwickler schrecken zu Recht davor zurück. Schon einfache Sprachen, wie zum Beispiel C, sind in der Umsetzung äußerst komplex. Jürg Billeter, ein Informatik-Student der ETH-Zürich, schuf Mitte Juli 2006 Vala. Dabei kam etwas heraus, das in Features und Syntax an eine Mischung aus C++, C# und Java erinnert. Ziel war es jedoch nicht, einen neuen Konkurrenten für die bereits etablierten Sprachen zu erschaffen, sondern Entwicklern eine Möglichkeit zu geben, GObject-basierende Anwendungen ohne Kopfschmerzen umzusetzen. Dies ist mitunter einer der Gründe, weshalb Vala viele Eigenschaften enthält, die üblicherweise nur in GObject zu finden sind. Anders als gängige Compiler übersetzt Vala den Quelltext des Programmierers nicht direkt in maschinenlesbaren Binärcode, sondern in ANSI-C. Mit der Ausgabeoption "valac -o test test.vala" besteht allerdings die Möglichkeit, den resultierenden "Zwischencode" direkt an den C-Compiler zu übergeben.

|
Dieses Stückchen Vala-Code bildet das Grundgerüst für ein Plugin für den Mediaplayer Rhythmbox.
|
Vala-Features
Vala unterstützt sämtliche moderne Features aus der Welt der Objektorientierung, die heutige Programmiersprachen beherrschen. Dazu zählen, um nur einige zu nennen:
- Interfaces (Java und C#)
- abstrakte Klassen (Java, C++, C#)
- virtuelle Methoden (Java, C++, C#)
- Properties (C#),
- Generics/Templates (Java, C++, C#)
- Non-null-Typen
- Polymorphismus (Java, C++, C#)
- Ausnahmebehandlung (Java, C++, C#)
Zusätzlich, und hier zeigt sich die Verbindung zu GObject, existiert das Schlüsselwort "signal". Methoden die Sie damit einleiten, verbinden Sie im weiteren Programmablauf mit einem Slot. Mit den von C# her bekannten "delegate"-Methoden kann Vala ebenfalls umgehen: Genauer gesagt handelt es sich hier im eigentlichen Sinne nur um die von C bekannten Funktionszeiger, die Sie an Funktionen übergeben. Bisher unterstützt Vala nur statische Handler-Methoden, die einer bestimmten Klasse beziehungsweise eines Typs zugeordnet sind. Ein Nachteil, der dadurch entsteht ist, dass sich der Zugriff auf eine Instanz nicht realisieren lässt. In einer der nächsten Versionen weiß der Compiler aber auch mit Instanzmethoden, die Sie per Parameter übergeben, umzugehen. In C ist das durch die Übergabe eines Funktionszeigers samt Funktionsparameter bereits gängige Praxis und taucht auch in vielen Stellen der GLib auf: "g_hash_table_foreach (GHashTable *htable, GHFunc func, gpointer user_data)".
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|