Open Source im professionellen Einsatz
Newsletter abonnieren
HEFTARCHIV | NEWS | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO

Partner-Links:
Shopping
Yatego Deutschlands größte Shoppingmall. 7000 Shops,
2.5 Mio Artikel. Alle Bestseller, Gutscheine und Liveshopping.

Firewall bei Mercateo kaufen.

Ein Preisvergleich bei Hardware lohnt sich.

Bei inkpool.de Laserdrucker und mehr bestellen.

Sie suchen günstige Laptops? Schauen Sie doch mal bei Preisvergleich.org, Preisvergleich.eu, Preisvergleich.ch und Preisvergleich.at vorbei.

Linux Jobs

Job offers Netherlands


user friendly

  Home  »  Online Artikel  »  GObject ohne Kopfschmerzen  

RSS-Feed der aktuellen News von Linux-Magazin Online

Diesen Artikel drucken Diesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren

Vala - Sprache und Compiler für das GObject-Typensystem

GObject ohne Kopfschmerzen

von Christian Meyer
 

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.

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)".

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Diese Seite zu Mister Wong hinzuf�gen Webnews yigg it! Slashdot it! Twittern!
Ähnliche Artikel
Vorteile kombinieren Interview mit dem Vala-Autor Jürg Billeter
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Gemeinsam unter Palmen Gran Canaria Desktop Summit 2009
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Projekteküche Aktueller Überblick über freie Software und ihre Macher
Mit Frischesiegel Der aufgeräumte Weg zu GTK+ 3.0
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (0)
 

Impressum |Datenschutzerklärung | © 2010Linux New Media AG
Partner-Sites
Deutschland: [Admin-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Linux Technical Review] [Ubuntu User]
Europa: [EasyLinux Polen] [Linux Magazine Polen] [Linux Magazine Spanien]
International: [Linux Magazine International] [Linux Pro Magazine] [Ubuntu User] [Linux Magazine Brasilien] [EasyLinux Brasilien]