Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2004  »  03  »  Grenzen überwinden  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Cross-Plattform-Entwicklung mit WX-Windows

Grenzen überwinden

von Steffen Panning
Erschienen im Linux-Magazin 2004/03

Plattformübergreifendes Programmieren ist eine Kunst: Um die großen Unterschieden von Linux, Windows und Mac zu überwinden, müssen Cross-Plattform-Toolkits viel leisten. Dieser Artikel stellt WX-Windows vor, eine GUI-Bibliothek, die seit über zehn Jahren Entwicklern diese Aufgabe erleichtert.

Welches ist das beste Cross-Plattform-Toolkit? Diese Frage führt in einem Entwicklerforum schnell zu einem kleinen Religionskrieg. Eine der möglichen Antworten lautet WX-Windows[1]. Neben dem persönlichen Geschmack entscheiden auch Einsatzgebiet oder Firmenpolitik über eine sinnvolle Auswahl. Vergleichen lässt sich WX unter anderem mit QT, der Cross-Plattform-Bibliothek der norwegischen Firma Trolltech[2].

Spieglein, Spieglein ...

Beim Vergleich von WX und QT fallen drei Unterschiede besonders auf: interne Realisierung, Lizenz und verfügbare Plattformen. Der erste Unterschied betrifft das technische Prinzip: QT zeichnet die grafische Oberfläche selbst, ohne dabei auf Widget-Bibliotheken der Zielplattform zuzugreifen. WX beschränkt sich dagegen meist auf die Rolle einer Vermittlerin, die dem Programmierer ein einheitliches API anbietet. Für die Darstellung sind plattformspezifische Bibliotheken zuständig. Unter Linux stehen sogar zwei Widget-Bibliotheken zur Auswahl: Motif/X11 und GTK, siehe Abbildungen 1 und 2.


Abbildung 1: Der Beispiel-Editor (140 Zeilen Quellcode, siehe Listings 1 und 2) ist hier mit der GTK-Fassung von WX-Windows gelinkt.


Abbildung 2: Dasselbe Programm wie in Abbildung 1, hier aber im Motif-Stil: WX-Windows ist ein einheitliches API zu verschiedenen Widget-Bibliotheken.

Die meisten Linux-Benutzer erwarten nicht unbedingt, dass verschiedene GUI-Programme dasselbe Look & Feel benutzen. Auf anderen Plattformen, etwa Microsoft Windows, führt aber selbst ein geringfügig anderes GUI-Verhalten zu Irritationen, da der Benutzer dieses Verhalten nicht gewohnt ist. WX-Applikationen passen sich automatisch an die Gegebenheiten der Plattform an.

Der zweite, oft wichtigere Unterschied ist die Lizenz. Die QT-Bibliothek ist auf Linux-Systemen und Mac OS X durch die GPL lizenziert. Wer sein Programm auch Windows-Nutzern zur Verfügung stellen will, muss eine recht teure Lizenz kaufen. WX-Windows unterliegt dagegen auf allen Plattformen der weniger restriktiven LGPL-Lizenz. Drittens unterstützt WX einige Plattformen, die QT nicht erreicht, etwa MGL und OS/2.

Geschmacksrichtungen

WX-Windows unterstützt alle Windows-Betriebssysteme ab Version 3.1, Mac OS 9 und X, Unix-artige Betriebssysteme, OS/2 sowie verschiedene Embedded-Systeme. Die grafisch orientierte WX-Windows-Bibliothek hat noch eine interessante Schwester: WX-Base. Dieser Untermenge von WX-Windows fehlen die grafischen Klassen. Mit WX-Base lassen sich plattformunabhängige Kommandozeilenprogramme für Systeme schreiben, auf denen keine grafische Oberfläche installiert ist.

Der Programmierer darf nicht nur die Zielplattform recht frei wählen, auch bei der Programmiersprache hat ihm WX einiges zu bieten: Neben dem Default-API in C++ existieren Bindings zu vielen anderen Sprachen (Tabelle 1). Die Unterstützung der einzelnen Sprachen ist allerdings unterschiedlich weit entwickelt. Während beispielsweise die Python- und Perl-Bindungen einen recht ausgereiften Eindruck machen, steckt die Dotnet-Unterstützung noch in den Kinderschuhen.

Tabelle 1:
WX-Bindings

 

Sprache

URL

Basic

http://wxbasic.sourceforge.net

Dotnet

http://wxnet.sourceforge.net

Eiffel

http://elj.sourceforge.net/projects/gui/ewxw/

Haskell

http://wxhaskell.sourceforge.net

Java

http://www.wx4j.org

Javascript

http://wxjs.sourceforge.net

Lua

http://www.luascript.thersgb.net

Perl

http://wxperl.sourceforge.net

Python

http://wxpython.org

Ruby

http://wxruby.rubyforge.org

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Ein Stift für jedes Blatt 2D-Grafikbibliothek Cairo
Alternativ-Baukästen GUI-Programmierung mit Fltk, Wx-Widgets und EFL
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Babylon zu fünft Populäre Programmiersprachen treten gegeneinander an
Paket-Entwicklung Software entwickeln unter Linux
Eurovision Bot Contest Über 120 Teilnehmer stürmen beim Programmierwettbewerb die Würfelbecher
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)