Plattformunabh�ngige Softwareentwicklung
ArticleCategory: [Choose a category, translators: do not
translate this, see list below for available categories]
Software Development
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in de Michael
Tschater
AboutTheAuthor:[A small biography about the author]
Michael besch�ftigt sich haupts�chlich mit hardwarenaher
Software-Entwicklung (Firmware). Bei seinem aktuellen Projekt
muss zus�tzlich eine Strategieentscheidung �ber eine
Entwicklungsumgebung getroffen werden, mit der zuk�nftig ein
Front-End zum Ansteuern seiner Firmware programmiert werden
soll.
Abstract:[Here you write a little summary]
Nahezu alle Ger�te in der Industrie lassen sich heutzutage �ber
ein Netzwerk steuern. Die Bedienoberfl�che l�uft dabei auf
Standard-Hardware und arbeitet als reiner Client, der
zeitunkritisch Daten sendet (z.B. Initialisierungsparameter)
und empf�ngt (z.B. Me�ergebnisse). Im folgenden Schaubild ist
die hier angesprochene Kommunikation gr�n gekennzeichnet.
Bei Softwareprojekten stellt sich vielfach die Frage, welche
Betriebssysteme unterst�tzt werden sollen. W�hrend der Leser
dieses Artikels wohl in Richtung Linux tendieren d�rfte, werden
aber auch andere Betriebssysteme (haupts�chlich Windows)
gefordert. Prinzipiell spielt das verwendete Betriebssystem f�r
den genannten Anwendungsfall keine gro�e Rolle, es mu�
lediglich gew�hrleistet sein, da� der Benutzer intuitiv in
gewohnter Weise zu den gew�nschten Ergebnissen kommt.
Der folgende Artikel soll aufzeigen, dass es keine Entscheidung
f�r eine einzelne Plattform geben muss, sondern dass es ohne
weiteres m�glich ist Software zu schreiben, die sich auf
mehreren Betriebssystemen �bersetzen l��t. Als Zielplattform
beschr�nkt sich der Artikel auf Standard PCs mit Linux und
Windows. Es sollte auch m�glich sein die erstellten Anwendungen
auf einem Mac unter MacOSX zu �bersetzen, dies kann aber aus
Mangel an Hardware nicht untersucht werden.
ArticleIllustration:[One image that will end up at the top
of the article]
ArticleBody:[The main part of the article]
Einleitung
Bei betriebssystemunabh�ngigen Bibliotheken unterscheidet man
zwei Ans�tze zum Darstellen von Steuerelementen in
Dialogen:
- Native Bibliotheken: F�r die Darstellung von Elementen
werden die entsprechenden Routinen des Betriebssystems
genutzt. Dadurch ist gew�hrleistet, dass alle Steuerelemente
aussehen wie in den Standard-Applikation dieses
Betriebssystems. Eine native Bibliothek stellt Steuerelemente
unter Linux anders dar als unter Windows 2000 oder Windows
XP.
- Die zweite M�glichkeit ist ein entsprechendes
Look&Feel selbst zu programmieren, d.h. s�mtliche
Steuerelemente werden von der Bibliothek gezeichnet und sehen
unter allen Betriebssystemen gleich aus.
Neben den technischen Merkmalen der Bibliotheken spielen in der
Praxis noch weitere Faktoren eine Rolle, die ebenfalls
verglichen werden sollen:
- Entwicklungsungebung: Eine integrierte
Entwicklungsumgebung (z.B. mit GUI Builder, Makefile
Generator) vereinfacht die Softwareentwicklung.
- Dokumentation und Support: Bei auftretenden Problemen ist
schnelle Hilfe n�tig.
- Kosten: W�hrend die meisten Bibliotheken f�r private
Anwendungen frei verf�gbar sind, fallen beim gewerblichen
Einsatz teilweise Kosten an. Bei Grundsatzentscheidungen zu
Softwareprojekten gilt es solche Kosten vor den
Entscheidungstr�gern zu rechtfertigen.
- Tats�chlicher Aufwand beim Portieren zwischen den
Systemen.
Im konkreten Fall wird auf einen weiteren Punkt Wert gelegt,
der jedoch nicht f�r alle Projekte zutreffen wird:
- Die erzeugte Software soll native Steuerelemente
verwenden um sich nahtlos in die jeweilige Systemarchitektur
einzugliedern. Der Benutzer soll keine Unterschiede zwischen
dieser Software und der existierenden Software auf dem System
erkennen k�nnen.
Stellt man die Bibliotheken in einem Schichtenmodell dar,
ergibt sich folgendes Bild:
Programmiersprachen
Das erste Auswahlkriterium ist die Programmiersprache. Hier
bieten sich bereits mehrere M�glichkeiten auf die im Anchluss
konkret eingegangen wird:
- C/C++ Bibliotheken.
- Java
- Kylix
- Smalltalk
- Mozilla
Die Alternativen zu C und C++ werden etwas ausf�hrlicher
angesprochen, da sie auch unter Software-Entwicklern weniger
bekannt sind.
Eine Beispielanwendung
Um die einzelnen Softwarepakete praktisch vergleichen zu k�nnen
wird mit allen Bibliotheken eine Beispielanwendung erzeugt. Die
implementierte Anwendung verf�gt �ber keinerlei Funktionalit�t,
zeigt aber die wichtigsten Steuerelemente. F�r die Windows
Seite wird zudem eine reine Windows Software (Visual C++ 6.0,
MFC Klassenbibliothek) erzeugt, an der sich die anderen Pakete
bez�glich des Look&Feels messen m�ssen. Als Linux
Distributionen kommen RedHat Fedora Core 2 und Debian 3.0 zum
Einsatz.
Windows 2000 und Windows XP Screenshot (Quellcode f�r Visual
C++ hier).
C/C++ Bibliotheken
Trolltech Qt
Qt ist eine Klassenbibliothek der norwegischen Firma Trolltech
f�r die plattform�bergreifende Programmierung unter C++. Der
Linux Windows Manager KDE basiert auf dem Qt Paket.
Urspr�nglich wurde Qt unter einer Lizenz vertrieben, die f�r
viele Linuxanwender nicht akzeptabel war. Aus diesem Grund
wurde die GTK+ Bibliothek entwickelt, die Grundlage f�r den
Gnome Windows Manager ist. Inzwischen ist sowohl die Linux- als
auch die MacOS-Version unter der GPL inklusive Quelltexten
verf�gbar, Qt f�r Windows wird nach wie vor kommerziell
vertrieben. Zur Evaluaierung kann eine zeitlich befristete
Testversion von der Webseite heruntergeladen werden, dabei wird
unterschieden zwischen Evaluierungen f�r anschlie�ende
kommerzielle Nutzung und Evaluierung f�r akademische Zwecke. Im
folgenden wird auf die kommerzielle Evaluierungsversion
eingegangen, die eine Registrierung erfordert.
Neben den Versionen f�r Windows, Linux (Unix) und Mac ist eine
embedded Version verf�gbar, die auf embedded Linux Varianten
l�uft und eine schlankere Fensterverwaltung bietet.
Unter Linux verl�uft die Installation wie erwartet v�llig
problemlos. Im Programmpaket enthalten ist der GUI Generator Qt
Designer. Die enthaltene umfangreiche Dokumentation gef�llt
durch eine detaillierte Beschreibung von Beispielprojekten,
einem Kapitel zum Schnelleinstieg, sowie einer
Klassen�bersicht. Der Qt Designer ist leider keine komplette
Entwicklungsumgebung, f�r die Code-Generierung muss eine Shell
bem�ht werde. Als Ouput des GUI Generators erh�lt man eine XML
Beschreibung der erstellten grafischen Oberfl�che. Aus dieser
Beschreibung wird �ber das Qt-Tool qmake ein g�ltige Makefile
erzeugt. Das Makefile erzeugt aus der Oberfl�chen-Beschreibung
zun�chst C++ Quellcode-Dateien (Qt-Tool: uic) und ruft
anschlie�end den Meta Object Compiler (Qt-Tool: moc) auf, der
Qt spezifische Spracherweiterungen in C++ Quellcode umsetzt
(z.B. Signal-Slot-Mechanismus). Erst danach kann ein Standard
make aufgerufen werden.
M�chte man die Source-Files von Hand generieren ist folgende
Sequenz n�tig (Ausgangsbasis ist MyDialog.ui):
- uic MyDialog.ui > MyDialog.h
- uic -impl MyDialog.h MyDialog.ui > MyDialog.cpp
- moc -o moc_MyDialog.cpp MyDialog.h
Bei der Installation unter Windows ben�tigt das Toolkit einen
Benutzer- und Firmennamen sowie eine Seriennummer. Diese Daten
werden von Trolltech per Email nach der Registrierung
mitgeteilt. Wider Erwarten l�uft die Installation auf den
Testsystemen nicht reibungslos ab. Eine Windows 2000
Installation mit Visual C++ 6.0 Entwicklungsumgebung wird zwar
korrekt erkannt, dem Wizard gelingt es aber nicht, die
Beispielprojekte zu �bersetzen und die Installation muss
abgebrochen werden. Auf einem zweiten System mit Windows 2000
wird eine Visual C++ 5.0 Umgebung erst gar nicht erkannt. In
beiden F�llen muss also Hand angelegt werden um zu einem
lauff�higen System zu gelangen. Wie bei der Linux Version wird
auch unter Windows die Entwicklungsumgebung Qt Designer
mitgeliefert. Die Dokumentation ist offensichtlich die gleiche
wie unter Linux. Die Windows spezifischen Informationen gehen
etwas unter. So muss der Visual C++ Programmierer intensiv
suchen, um die wichtigen Zeilen "For Visual Studio users, qmake
can also generate '.dsp' files, for example: qmake -t vcapp -o
hello.dsp hello.pro" zu finden.
Linux und Windows 2000 Screenshot (Quellcode f�r QtDesigner
hier).
�bersicht �ber Qt
Name:
|
Trolltech Qt
|
Version:
|
3.3.2
|
Betriebssysteme:
|
Linux, Win32, MacOS, Solaris, IRIX, AIX, HP-UX
|
Programmiersprache:
|
C++
|
Lizenz:
|
GPL oder propriet�re Lizenz (kommerziell)
|
Vorteile: |
- Basisbibliothek f�r den KDE Windows Manager unter
Linux
- Installationspakete in allen Linux
Standard-Distributionen vorhanden (Installation sehr
einfach)
- generische Controls unter Windows
- M�chtige Entwicklungsumgebung(en)
- bew�hrt
- Migrationsunterst�tzung f�r Win32 MFC Anwendungen
(Qt/MFC Migration Framework) erm�glicht das
schrittweise Umsetzen von MFC Quellcode.
|
Nachteile:
|
- evtl. Lizenzkosten (teuer)
- Evaluierungssoftware l��t sich unter Windows
nicht fehlerfrei installieren
|
Entwicklungsumgebung:
|
z.B. QtDesigner, KDevelop
|
WWW: |
http://www.trolltech.com |
Dokumentation:
|
Manuals, Tutorials, Mailing Listen
z.B. http://doc.trolltech.com/3.3/index.html
|
Referenzprojekte:
|
- KDE Desktop (Default z.B. bei SuSE)
- Opera Browser
- Photoshop Album
|
Verbreitung:
|
sehr gro�e Verbreitung
|
wxWidgets
Seit mittlerweilen 12 Jahren ist das wxWidgets Toolkit
verf�gbar, jedoch erst vor wenigen Monaten bekam das Paket
seinen heutigen Namen. Der bis dahin verwendete Name wxWindows
wurde nach "Gespr�chen" mit Microsoft aufgegeben. wxWidgets
verf�gt �ber eine riesige Sammlung an Klassen f�r alle
Bereiche. Neben der m�chtigen Dokumentation sind sehr viele
Beispielanwendungen verf�gbar. Die Liste der
Referenzanwendungen macht deutlich, dass es hier um ein
ausgereiftes Softwarepaket handelt.
Die Programmierung erfolgt in C++ und ist �hnlich der Visual
C++ Programmierung unter Windows. Ein Umstieg d�rfte hier die
geringsten Probleme verursachen.
Nach der Installation der Version wxWindows2.4.2 unter RedHat
Fedora Core 2 treten beim �bersetzen der Beispielprogramme
Fehler auf. Die Ursache der Fehler liegt in GTK+ Aufrufen, die
in der von RedHat gepatchten Version von GTK+ privat und somit
nicht zugelassen sind. Hier zeigt sich, das die Dynamik der
Open Source Gemeinde durchaus auch Probleme verursachen kann.
Die Probleme sollten aber nicht �berbewertet werden. Mit der
Installation einer Standard GTK+ Bibliothek d�rfte alles glatt
laufen. F�r die weitere Untersuchung im Rahmen dieses Artikel
wird stattdessen auf die Debian Distribution Version 3.0
gewechselt. Hier funktioniert alles auf Anhieb.
Ebenfalls problemlos verl�uft die Installation unter Windows.
Das Generieren der Bibliotheken und Beispielprogamme
funktioniert musterg�ltig.
Linux und Windows 2000 Screenshot (Quellcode hier).
�bersicht �ber wxWidgets
Name:
|
wxWidgets
|
Version:
|
2.4.2
|
Betriebssysteme:
|
Linux, Win32, embedded Devices
|
Programmiersprache:
|
C++
|
Lizenz:
|
LGPL
|
Vorteile: |
- einfache Handhabung (viele Beispiele).
- sehr gute Dokumentation.
|
Nachteile:
|
- Probleme bei der Kombination Fedora Core 2 -
wxWindows2.4.2
|
Entwicklungsumgebung:
|
|
WWW: |
http://www.wxwidgets.org
|
Dokumentation:
|
Manuals, Tutorials, Mailing Listen, Wiki
z.B. http://wiki.wxwidgets.org |
Referenzprojekte:
|
AOL Communicator
|
Verbreitung:
|
geringe Verbreitung
|
GTK+ (mit gtkmm)
Die Abk�rzung GTK steht f�r "The GIMP Toolkit". Die beiden
bekanntesten Projekte sind der Gnome Windows Manager, der in
allen Standard Linux Distributionen enthalten ist, und die
professionelle Grafikanwendung GIMP. Gnome ist neben KDE (siehe
Qt) die zweite gro�e Desktop-Umgebung unter Linux. Sie wird von
vielen Distributionen als Standard-Umgebung installiert. Mit
Einf�hrung der Version 2 von GTK+ ist das Look&Feel
wesentlich verbessert worden.
Eine Besonderheit von GTK+ ist, dass es komplett in C
implementiert wurde. Konsequenterweise erzeugt der GUI-Builder
glade2 ebenfalls C-Code. Durch Verwendung von gtkmm (fr�her
GTK--) l��t sich aber ebenfalls in C++ programmieren.
Ganz im Gegensatz zum professionellen Auftreten von GTK+ f�r
Linux scheint es mit 'GTK+ for Win32' nicht weit her zu sein.
Klickt man auf der GTK+-Hauptseite auf diesen Link erscheint
sofort die Warnung: "The program(s) might crash unexpectedly
or behave otherwise strangely. (But of course, so do many
commercial programs on Windows.) The stability seems to depend
a lot on the machine, display drivers, other software
installed, and whatnot." (Stand 2004-09-06). Der wagemutige
Software-Entwickler klickt nat�rlich dennoch auf die Download
Seite und bekommt eine lange Liste an einzelnen
Softwarekomponenten zum Download angeboten. Ein
zusammenh�ngendes Paket sucht man vergebens. Stattdessen liest
man die Anweisung, eine Reihe von Softwarekomponenten zu
installieren und gegebenfalls, wenn bestimmte Sachen fehlen,
die Download-Seite eben noch einmal zu besuchen. Dies passt zur
Aussage der 'GTK+ for Windows' - Webseite: "You are expected to
be pretty experienced to be able to use GTK+ in your own
programs. This isn't Visual Basic.".� Nach einer Installation
der Basiskomponeneten und einem erfolglosen Versuch eine
Beispielanwendung zu starten, d�rfte den meisten Entwicklern
allm�hlich die Lust auf eine tiefere Einarbeitung vergangen
sein. Die v�llig unprofessionelle Aufmachung der 'GTK+ for
Win32' Einzelkomponenten (von einem Paket kann keine Rede sein)
disqualifiziert das Software-Paket und jeglicher
(professionelle) Einsatz ist ausgeschlossen.

GTK+ Screenshot f�r Linux (Quellcode f�r glade2 hier)
�bersicht �ber GTK+
Name:
|
GTK+ - The GIMP Toolkit
|
Betriebssysteme:
|
Linux, Win32
|
Programmiersprache:
|
C (C++ mit gtkmm)
|
Lizenz:
|
LGPL
|
Vorteile:
|
- Basisbibliothek f�r den Gnome Windows Manager
unter Linux
- Installationspakete in allen
Standard-Distributionen vorhanden (Installation sehr
einfach)
- generische Controls unter Windows
- bew�hrt (unter Linux)
|
Nachteile:
|
- Win32-Implementierung ist unhandlich l�uft nicht
stabil (Stand 09-2004)
|
Entwicklungsumgebung:
|
z.B. glade2 (GUI Builder), Anjuta |
WWW: |
http://www.gtk.org |
Dokumentation:
|
Manuals, Tutorials, Mailing Listen
z.B. http://developer.gnome.org/doc/API/2.0/gtk/index.html
|
Referenzprojekte:
|
- Gnome Desktop
- GIMP
- Gnumeric
|
Verbreitung:
|
Linux: sehr gro�e Verbreitung, Windows: sehr geringe
Verbreitung
|
FLTK
Beim FLTK Toolkit (Fast, Light Tool Kit) handelt es sich um ein
weitestgehend unbekanntes Paket, dass als Nachfolger von XForms
implementiert wurde. Auf der Web-Seite bekommt man die
kompletten Sourcen zum Download angeboten. Die Gr��e von 2.3MB
(.tar.gz, Linux) bzw. 3MB (.zip, Win32) macht dem Namen alle
Ehre. Unter Linux erfolgt die Installation problemlos:
auspacken und "make" aufrufen, fertig. Danach stehen dem
Benutzer die Bibliotheken, Beispielanwendungen, der GUI-Builder
"fluid" und ein Programmierhandbuch zur Verf�gung. Dass bei
dieser Gr��e die Anzahl der zur Verf�gung gestellten Klassen
geringer ist als bei den Schwergewichten Qt und wxWindows
d�rfte klar sein. Die enthaltenen Klassen decken den
GUI-Bereich ab, d.h. Fenster, Men�s, Controls, OpenGL und
Darstellung von Bildern. Klassen f�r Netzwerk-Kommunikation und
�hnliches sind nicht vorhanden.
Unter Windows l�uft die Installation nicht ganz so rund. Bei
Verwendung der Visual C++ Entwicklungsumgebung muss lediglich
ein Hauptprojekt �bersetzt werden, dabei kommt es aber zu
Problemen mit den Grafikbibliotheken. Der Einfachheit halber
k�nnen diese in der Konfigurationsdatei config.h auskommentiert
werden.
Eine weitere Besonderheit der Windows-Variante ist, dass sich
beim Starten eines Projekts stets auch ein DOS-Fenster �ffnet,
wenn die FLTK-Bibliothek in der DEBUG Variante erstellt wurde.
Dies ist kein Bug, sondern ein Feature: Auf diese Art wird
gew�hrleistet, dass Anwendungen die von der Konsole gestartet
werden auf stderr und stdout schreiben k�nnen.
Insgesamt gesehen macht das FLTK Toolkit einen sehr
durchdachten Eindruck. Die Dokumentation hebt insbesondere die
geringe Gr��e der Executables (80kB f�r ein "hello world") und
schlanke schnelle 2D und 3D Grafik (OpenGL/Mesa) hervor.
Desweiteren wird auf eine gute Portierbarkeit hingewiesen.
Linux und Windows 2000 Screenshot (Quellcode hier).
�bersicht �ber FLTK
Name:
|
Fast Light Tool Kit |
Version:
|
1.1.5rc3
|
Betriebssysteme:
|
Linux, Win32, MacOS
|
Programmiersprache:
|
C++
|
Lizenz:
|
LGPL
|
Vorteile: |
- sehr schlanke Bibliothek
- Quellcode inklusive Dokumentation und
Entwicklungsumgebung "fluid"
- gute OpenGL Unterst�tzung (wurde nicht
untersucht)
- generische Controls unter Windows
|
Nachteile:
|
- Installation unter Win32 (Visual C++) nicht
fehlerfrei
- fluid-Entwicklungsumgebung l�uft nicht stabil
unter Windows
|
Entwicklungsumgebung:
|
z.B. fluid (GUI Builder), Eclipse
|
WWW: |
http://www.fltk.org, Download:
http://freshmeat.net/projects/fltk/
|
Dokumentation:
|
Manuals, Tutorials, Mailing Listen
z.B. http://www.fltk.org
|
Referenzprojekte:
|
|
Verbreitung:
|
geringe Verbreitung; auch unter Software-Entwicklern
weitestgehend unbekannt
|
FOX Toolkit
Das Fox Toolkit bezeichnet sich selbst als eines der
schnellsten verf�gbaren Toolkits. Es verf�gt �ber eine Vielzahl
von Steuerelementen und eine OpenGL Anbindung.
Die obligatorischen Test-Installationen unter Windows und Linux
verlaufen problemlos. Neben Beispielprojekten ist eine
ausf�hrliche Dokumentation verf�gbar. Leider fehlt bei der
getesteten Version die Klassen�bersicht, die aber online
eingesehen werden kann. Bei der weiteren Untersuchung leistet
sich das Toolkit keine Schw�chen.

Windows 2000 Screenshot (Quellcode hier)
�bersicht �ber FOX
Name:
|
FOX Toolkit |
Version:
|
1.2.9
|
Betriebssysteme:
|
Linux, Win32
|
Programmiersprache:
|
C++
|
Lizenz:
|
LGPL
|
Vorteile: |
|
Nachteile:
|
|
Entwicklungsumgebung:
|
|
WWW: |
http://www.fox-toolkit.org
|
Dokumentation:
|
Manuals, Tutorials, Mailing Listen
|
Referenzprojekte:
|
|
Verbreitung:
|
geringe Verbreitung
|
Weitere M�glichkeiten
Neben den angesprochenen Bibliotheken sollen der
Vollst�ndigkeit halber noch weitere Projekte genannt werden,
auf die aber nicht eingegangen wird:
JAVA
Im Jahre 1995 stellte die Firma Sun eine neue
Programmiersprache vor. Neben normalen Desktop-Computern war
Java f�r Industrieger�te (Kaffemaschinen, Toaster, ...)
vorgesehen. Der gro�e Durchbruch gelang aber zun�chst �ber
Internet-Anwendungen (Applets) in Verbindung mit Web-Browsern.
In der Zwischenzeit wird Java aber auch f�r Standalone
Anwendungen verwendet, f�r die es sich durch verschiedenen
Eigenschaften sehr gut eignet.
Im folgenden sollen die wichtigsten Eigenschaften von Java
aufgez�hlt und kurz erkl�rt werden.
Plattformunabh�ngigkeit
Java ist plattformunabh�ngig. Java Anwendungen bestehen aus
einem Bytecode, der von einer virtuellen Maschine interpretiert
wird. Dadurch sind die Anwendungen auf jeder Hardware
lauff�hige f�r die eine passende virtuelle Maschine existiert.
Das Interpretieren durch die virtuelle Maschine bedeutet eine
geringere Abarbeitungsgeschwindigkeit gegen�ber compilierter
Software. Um diesen Nachteil auszugleichen sind mittlerweile
Verbesserungen wie beispielsweise Just-In-Time-Compilierung
(JIT) entwickelt worden, die zur Laufzeit Programmanweisungen
der virtuellen Maschine in Anweisungen f�r die physaklische
Maschine �bersetzt. Als Ergebnis erh�lt man hier ein
angepasstes Programm im Speicher, dass ohne Interpretation
schnell ausgef�hrt werden kann. Die Hotspot-Technologie f�hrt
zus�tzlich eine Analyse des Laufzeitverhaltens zur weiteren
Optimierung durch.
Objektorientierung�
Java ist objektorientiert. Bei der Objektorientierung lie�en
sich die Entwickler der Sprache von Smalltalk inspirieren.
Vermutlich aus Performance-Gr�nden sind aber dennoch primitive
Datentypen vorhanden, die nicht als Objekte verwaltet
werden.
Sprachsyntax
Die Sprachsyntax ist �hnlich wie bei C und C++, jedoch wurden
fehlertr�chtige Inkonsistenzen nicht �bernommen. Eine Grundsatz
beim Entwicklen der Sprache war, dass Java die besten Konzepte
der existierenden Programmiersprachen vereinen soll.
Einige Beispiele sind:
- Kein Pr�prozessor: Ein Pr�prozessor und Header-Dateien
sind nicht mehr n�tig, da alle Informationen direkt aus den
Klassendateien gelesen werden.
- Zeiger: Java kennt keine Zeiger, sondern verwendet statt
dessen Referenzen. Eine Referenz repr�sentiert ein
Objekt.
- Garbage-Collector: Um Probleme mit dem Anlegen und
L�schen von Objekten zu umgehen wird die Objektverwaltung von
der Java-Laufzeitumgebung �bernommen. Beim Verlassen des
Wirkungsbereichs werden Objekte automatisch gel�scht. Nicht
freigegebene Objekte bzw. Speicherbereiche sowie falsche
Destruktoren werden durch diese Technik verhindert.
- Ausnahmebehandlung: Im Gegensatz zur C++
Ausnahmebehandlung werden Java Exceptions wesentlich
intensiver genutzt und sind oftmals obligatorisch.
Klassenbibliothek�
Java verf�gt �ber eine umfangreiche Klassenbibliothek: JFC
(Java Foundation Class) zum Erstellen von Oberfl�chen
(Durchgesetzt hat sich hier der Codename Swing).�
Sicherheit
Von einem Verifier wird Java-Code zun�chst auf strukturelle
Korrektheit und Typsicherheit �berpr�ft. Ein Security-Manager�
�berwacht die Zugriffe auf die Peripherie. Jegliche
Sicherheitsprobleme werden �ber Exceptions zur Laufzeit
gemeldet.�
Eignung f�r Projekte
Die genannten Vorteile haben Nebeneffekte, die Java nicht f�r
alle Projekte sinnvoll erscheinen lassen. Diese Eigenschaften
sind jedoch keine Fehler oder Schw�chen, sondern sind bewu�t
nicht implementiert worden und geh�ren zur
Sprachphilosophie.
Dazu geh�ren z.B.:
- plattformspezifische Peripherie-Zugriffe
- direkte Hardware-Zugriffe
- Eingriffe in das Betriebssystem
Das Java Development Kit kann von der Sun Internetseite
heruntergeladen werden und umfasst eine Basisausstattung an
Applikationen, Java-Klassen und die Online-Dokumentation. Bei
den Anwendungen handelt es sich um einen Compiler, einen
Debugger, einen Appletviewer, sowie verschiedenen
Hilfsprogrammen, die zum Erstellen und Testen von Java
Anwendungen und Java Applets notwendig sind. Die Ausstattung
bietet jedoch nur das N�tigste, der Compiler etwa muss von der
Kommandozeile aus bedient werden. Desweiteren ist im Paket das
Java Runtime Environment (JRE, enth�lt die virtuelle Maschine)
enthalten, die zum Ausf�hren des Bytecodes notwendig ist. Die
Dokumentation umfasst schlie�lich die Beschreibung der
kompletten API.
Unter Benutzung des Standard JDK soll die obligatorische
Hello-World Anwendung implementiert werden:
1. Schritt: Erzeugen des Quellcodes.
sh>vi Helloworld.java
public class HelloWorld {
public static void main (String[] args) {
System.out.println("Hello World!");
}
}
Dateiname und Klassenname m�ssen �bereinstimmen.
2. Schritt: �bersetzen.
sh>javac Helloworld.java
3. Schritt: Anwendung unter Verwendung der virtuellen Maschine
starten.
sh>java Helloworld
JavaScript und Java
F�lschlicherweise werden zwischen JavaScript und Java oft
Gemeinsamkeiten vermutet. Dies ist grunds�tzlich falsch.
JavaScript wurde als Skript-Sprache zur Einbettung in HTML
urspr�nglich von der Firma Netscape entwicklet. Es ist keine
eigenst�ndige Programmiersprache und ist vom verwendeten
Browser abh�ngig. Der Name JavaScript ist also mehr als
Marketing-Gag zu verstehen.
Normierungsversuche
Bisher sind s�mtliche Normierungsversuche der Sprache Java
gescheitert. Grund hierf�r d�rfte sein, dass Sun die alleinige
Kontrolle �ber die Weiterentwicklung des Java-Standards nicht
aus der Hand geben m�chte.
Dekompilierung
Ein Wunder Punkt von Java ist die Tatsache, dass Anwendungen
dekompiliert werden k�nnen. Trotz aller Sicherheitsmechanismen
kann, zumindest im Augenblick, der Bytecode wieder in Source
Code umgewandelt werden. Da der Java Compiler Bytecode f�r
einen virtuellen Prozessor erstellt, m�ssen im Gegensatz zum
klassischen Assembler-File weitere wichtige Informationen
enthalten sein, die die Dekompilierung deutlich vereinfachen.
Dies ist vor allem dann kritisch, wenn spezielles Wissen im
Source Code steckt.
Wundersprache oder kurzfristiger Hype?
Nachdem das Java Konzept anf�nglich f�r die ultimative L�sung
f�r plattformunabh�ngige Programmierung gehalten wurde, hat
sich die Euphorie wieder gelegt. Neben Versionskonflikten
zwischen verschiedenen virtuellen Maschinen wird immer wieder
auf die Geschwindigkeit verwiesen. Viele Firmen sind nach einer
Versuchsphase wieder zur Standard-C++ Programmierung
zur�ckgekehrt. Dies wird z.B. von den wxWidgets Entwicklern
best�tigt, die von wieder steigender Anzahl von Downloads
berichten.
Eine interessante Webseite in diesem Zusammenhang ist:
http://www.internalmemos.com/memos/memodetails.php?memo_id=1321.
Hier sprechen sich (angeblich) Sun Mitarbeiter gegen Java
aus.
Grafische Oberfl�chen mit Java
Standardm��ig bietet Java 2 M�glichkeiten zur Programmierung
von grafischen Oberfl�chen:
- Zum einen ist eine umfangreiche Klassenbibliothek
enthalten (JFC,� Swing), die s�mtliche Arten von
Steuerelementen zur Verf�gung stellt. Im Gegensatz zu den
bisher vorgestellten Toolkits werden wird hier keine
Betriebssystemfunktionalit�ten verwendet, sondern s�mtliche
sogenannten Widgets werden durch Java Befehle gezeichnet.
Dadurch ist es m�glich das Look&Feel der Anwendung zur
Laufzeit umzuschalten. Die im Anschlu� folgenden Screenshots
zeigen die identische Anwendung, die von dieser M�glichkeit
Gebrauch macht.
- Zum anderen gibt es die sehr rudiment�ren AWT Funktionen.
Bei AWT fehlen komplexere Oberfl�chenelemente wie z.B. B�ume,
weswegen es f�r die meisten Anwendungen unbrauchbar ist.
Java Screenshots im Metal-, Motif- und� GTK+ Look & Feel
(Quellcode hier)
Java Screenshot mit Windows Look & Feel unter Windows
2000 und Windows XP (identischer Sourcecode)
Da alle g�ngigen Browser Java unterst�tzen, k�nnen Anwendungen
auch als sogenannte Applets im Browser laufen. Diese
Technologie kann z.B. im Embedded Bereich genutzt werden. Der
Java-Bytecode wird auf Anforderung �ber einen Webserver an die
Clients (Browser) geschickt, die die Anwendung auf dem Host
ausf�hren. Daraus resultiert dass der Webserver lediglich �ber
gen�gend Speicherplatz zum Ablegen der Applets verf�gen muss,
die Rechenleistung spielt keine Rolle, da der Code in der
virtuellen Maschine des Aufrufers l�uft.
Der folgende Screenshot zeigt die identische Anwendung als
Java-Applet in eine Webseite eingebunden.

Java Screenshot mit der Beispielanwendung als Applet
(Beispielcode hier)
SWT und Eclipse
Obwohl Java �ber �hnliche Eigenschaften zur Darstellung von
grafischen Steuerlementen verf�gt wie andere Toolkits, gab es
unter Software-Entwicklern in der Vergangenheit immer wieder
unzufriedene Stimmen. Als gr��te Probleme wurde der mangelnde
Funktionsumfang und geringe Geschwindigkeit von Swing genannt.
Als Alternative wurde von IBM das Standard Widget Toolkit (SWT)
entwickelt, das unter Java die Verwendung von nativen Elementen
erlaubt. Ein Referenzprojekt ist die ebenfalls von IBM
entwickelte IDE Eclipse, die eine offene Plattform f�r
Entwicklungswerkzeuge darstellt. Sowohl Toolkit als auch
Entwicklungsumgebung sind freie Software.
Abk�rzung in Zusammenhang mit JAVA
JDK (Java Development Kit) |
Das komplette Java Paket zum Erstellen von Java�
Anwendung bestehend aus Anwendungen, Java Klassen und
Dikumentation.
|
JRE (Java Runtime Environment)
|
enth�lt die virtuelle Maschine und ist zum Benutzen
von Java Anwendungen notwendig.
|
J2ME (Java 2 Micro Edition)
|
Java f�r Ger�te mit geringen Ressourcen.
|
J2SE (Java 2 Standard Edition)
|
Java f�r den Desktop (Linux, Windows, ...)
|
J2EE (Java 2 Enterprise Edition)
|
Java zum Erstellen mehrschichtiger
Client-/Server-Anwendungen sowie von Java Servlets und
Java Server Pages.
|
JFC (Java Foundation Class)
|
Klassensammlung zum Erstellen von Oberfl�chen (->
Swing)
|
�bersicht �ber JAVA
Name:
|
JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT
5.0 |
Version:
|
5.0
|
Betriebssysteme:
|
- Linux, Windows, Solaris (SUN)
- Linux, Windows, AIX, Solaris (evtl. MacOS, OS/2,
FreeBSD, Amiga, BeOS) (Jikes -> IBM)
|
Programmiersprache:
|
JAVA
|
Lizenz:
|
propriet�re Lizenz (SUN)
|
Vorteile: |
- robuste Sprache (viele Fehlerquellen sind durch
das Sprachkonzept ausgeschlossen)
- gro�e Anzahl von leistungsf�higen Tools wie z.B.
Eclipse
|
Nachteile:
|
- propriet�re Sprache, alleinige Kontrolle durch
SUN
- virtuelle Maschine der Zielplattform muss
passen
- langsame Ausf�hrungsgeschwindigkeit
- SWT aufw�ndiger zu programmieren als Swing
|
Entwicklungsumgebung:
|
z.B. Eclipse
|
WWW: |
http://java.sun.com |
Dokumentation:
|
Manuals, Tutorials
Allgemein: http://java.sun.com/j2se/1.5.0/docs/,
http://www-e.uni-magdeburg.de/mayer/java.html
SWT: http://eclipse-wiki.info/SWT,
http://www.java-tutor.com/java/swtlinks.html
|
Referenzprojekte:
|
|
Verbreitung:
|
sehr gro�e Verbreitung
|
Kylix
Kylix ist eine Cross-Platform Entwicklungsumgebung f�r Linux
und Windows. Mit Hilfe der Borland CLX Bibliothek (Component
Library for Cross-platform) k�nnen Anwendungen unter Delphi und
C++ erstellt werden, die dann auf beiden Plattformen laufen.
Laut einem Bericht auf der Wikipedia-Homepage (Link hier) ist diese
Bibliothek aber nichts anderes als ein Wrapper f�r die bereits
vorgestellte Bibliothek Qt. Zus�tzlich handelt es sich bei der
Kylix IDE offenbar um eine auf WINE (Link hier)
basierende nicht-native Linuxanwendung, deren erstellten
Executables gegen libwine gelinkt werden m�ssen. Wenn man dies
ber�cksichtigt d�rfte der Einsatz von Kylix f�r C++-Entwickler
wenig Sinn machen, da hier der Einsatz von Qt mit einer freien
IDE wesentlich geradlinige ist.
�bersicht �ber Kylix
Name:
|
Kylix
|
Version:
|
3
|
Betriebssysteme:
|
Windows, Linux
|
Programmiersprache:
|
Delphi, C++
|
Lizenz:
|
propriet�re Software
|
Vorteile: |
- Entwicklung unter Delphi und C++
|
Nachteile:
|
|
Entwicklungsumgebung:
|
Kylix
|
WWW: |
http://www.borland.de/kylix |
Dokumentation:
|
�
|
Referenzprojekte:
|
|
Verbreitung:
|
geringe Verbreitung
|
Smalltalk
Ein Klassiker unter den Programmiersprachen ist Smalltalk. In
den Jahren 1969/70 von Xerox entwickelt, ist die Sprache bis
heute ein Musterbeispiel f�r v�llige Objetorientierung. In
Smalltalk ist alles ein Objekt, es gibt keine einfachen
Datentypen. Smalltalk arbeitet wie Java und .Net (siehe unten)
mit einer virtuellen Maschine. Die Sprachsyntax orientiert sich
an der nat�rlichen Sprache, unterscheidet sich aber deutlich
von anderen existierenden Programmiersprachen. Smalltalk wurde
bereits damals mit einer grafischen Oberfl�che programmiert,
weshalb man sagt, dass Smalltalk seiner Zeit 10-15 Jahre
vorraus war. Es ist m�glich zur Laufzeit das Kernsystem zu
�ndern und diese Modifikationen sind im Anschlu�, ohne dass ein
Neustart n�tig ist, g�ltig. Smalltalk war relativ erfolgreich
bis Java aufkam.
Das obligatorische 'Hello world !' unter Smalltalk:
Transcript show: 'Hello world !'; cr.
Smalltalk wird auch heute noch f�r Projekte eingesetzt. Die am
weitesten verbreitete Variante ist Smalltalk-80 (Normierung von
1980). Eine leistungsf�hige Entwicklungsumgebung ist
beispielsweise Squeak.
�bersicht �ber Smalltalk
Name:
|
Smalltalk (z.B. Squeak)
|
Version:
|
3.6
|
Betriebssysteme:
|
Windows, Linux, Solaris, MacOSX, Darwin
|
Programmiersprache:
|
Smalltalk
|
Lizenz:
|
Open Source
|
Vorteile: |
|
Nachteile:
|
- Smalltalk wird von Java verdr�ngt und hat eine
deutlich kleinere Nutzerzahl
|
Entwicklungsumgebung:
|
z.B. Squeak
|
WWW: |
http://www.smalltalk.org |
Dokumentation:
|
�
|
Referenzprojekte:
|
|
Verbreitung:
|
geringe Verbreitung
|
Mozilla
Mozilla? Ein Browser? Wie soll man mit einem Browser
programmieren? Bei Mozilla handelt es sich nicht nur um einen
Webbrowser, sondern zus�tzlich um ein plattform�bergreifendes
Framework, das verschiedene Standards wie z.B. XUL (XML based
user interface language) unterst�tzt. XUL wird verwendet um die Struktur
und den Inhalt einer Applikation zu definieren. S�mtliche
Dateien werden als Klartextdateien abgelegt. Mozilla
unterscheidet nicht zwischen Programmen und Webseiten da diese
konzeptionell sehr �hnlich sind. Folgende Zeile im Feld f�r dir
URL eingegeben l��t den Browser sich selbst rendern:
chrome://navigator/content
Der folgende Code stellt im Mozilla Browser einen Button dar,
der beim Anklicken ein Fenster mit dem Text "Hello World"
�ffnet.
<?xml version="1.0"?>
<!-- Beispiel XUL Datei -->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<box align="center">
<button label="Push" onclick="alert('Hello World');" />
</box>
</window>
Softwareentwicklung mit Mozilla entscheidet sich grundlegend
von der klassischen Programmierung. Viele innovative Konzepte
haben Einzug gefunden, wie zum Beispiel die Trennung der
Anwendung von der Darstellung. So k�nnen existierende
Anwendungen durch ge�nderte 'Themes' ihr Aussehen �ndern.
Erfolgreiche Projekte wie der Mozilla Firefox Browser zeigen,
dass es sich bei diesem Framework um eine ausgereifte und
robuste Umgebung handelt.
Linux und Windows 2000 Screenshot (Quellcode hier).
�bersicht �ber Mozilla
Name:
|
Mozilla
|
Version:
|
1.6
|
Betriebssysteme:
|
Windows, Linux,
|
Programmiersprache:
|
XUL
|
Lizenz:
|
Mozilla Public License, Netscape Public License |
Vorteile: |
- innovative Konzepte
- bestehende Webstandards werden unterst�tzt
(JavaScript, Stylesheets, ...)
- Anwendungen k�nnen im Browser oder als standalone
Anwendung dargestellt werden.
|
Nachteile:
|
|
Entwicklungsumgebung:
|
|
WWW: |
http://www.mozilla.org
|
Dokumentation:
|
�Manuals, Tutorials, Mailing Listen
z.B. www.xulplanet.com
|
Referenzprojekte:
|
Mozilla Firefox Browser
|
Verbreitung:
|
gro�e Verbreitung, aber selten bei Softwareprojekten
eingesetzt
|
Microsofts Antwort
Nat�rlich hat auch Microsoft die Zeichen der Zeit erkannt und
inzwischen einen eigenen Ansatz pr�sentiert. Unter dem Name
.NET wurde eine Plattform entwickelt, die nicht zuletzt den
Abwanderungsprozess von Software-Entwicklern zur
Konkurrenzplattform Java eind�mmen soll. Bei n�herer
Betrachtung finden sich auch tats�chlich viele Parallelen
zwischen den beiden Konkurrenten, auch wenn diese durch
unterschiedliche Namensgebung verschleiert werden. So hei�t
beispielsweise das Gegenst�ck zu Javas 'Bytecode' bei
Microsofts C# 'Intermediate Language' (MSIL).
Was ist .NET ?
.NET ist eine propriet�re Microsoft Technologie auf der alle
weiteren Microsoft Produkte basieren sollen. Die Unterst�tzung
der bisher favorisierten MFC Bibliothek f�r Visual C++ wurde im
Zuge der .NET Einf�hrung eingestellt. .NET soll die Entwicklung
von Netzwerk- und Internet-Anwendung vereinfachen und hat viele
Ideen von Java �bernommen. Es unterst�tzt objektorientierte
Programmierung und wird mit einer einzigen Klassenbibliothek
geliefert, die von verschiedenen Programmiersprachen (C#,
VB.NET) genutzt werden kann. Das bedeutet dass aus dem
Programmcode die 'Intermediate Language' erzeugt wird, die �ber
das .NET-Framework auf die Zielhardware zugreift (vgl. Java
Sourcecode -> Java Bytecode -> virtuelle Maschine ->
physikalische Hardware).
Zuk�nftige Windows Versionen werden mit dem .NET Framework
ausgeliefert.
Was ist Visual Sudio .NET ?
Visual Studio .NET ist eine Programmierumgebung, die das
Entwickeln von .NET-Software vereinfachen soll, es ist aber
nicht zwingend erforderlich.
Unterschiede zwischen Visual Basic (VB) und VB.NET
Obwohl VB.NET aus Kompatibilit�tsgr�nden viele alte VB
Funktionen unterst�tzt und die Sprach-Syntax beibehalten wurde,
ist VB.NET eine komplett neue Programmiersprache.
Welche Programmiersprache eignet sich am besten?
Da sowohl der VB.NET Quellcode als auch der C# Quellcode in die
MSIL �bersetzt werden, macht die verwendete Programmiersprache
keinen Unterschied. So gibt es zum Beispiel auch keine
Geschwindigkeitsunterschiede zwischen C# Code und VB.NET Code.
Da der C# Compiler aber speziell f�r das .NET Framework
entwickelt wurde, d�rfte er das geeignetere Tool sein.
.NET und Linux
Trotz des plattformunabh�ngigen Ansatzes wird Microsoft wohl
keine Linux .NET-Variante entwickeln, weshalb sich ein
Entwicklerteam um Miguel de Icaza (Ximian: Evolution) dieser
Aufgabe angenommen hat. Das Open Source Paket namens Mono ist
mittlerweile in der Version 1.0 verf�gbar.
�bersicht �ber .NET
Name:
|
Microsoft .NET-Framework
|
Version:
|
1.1
|
Betriebssysteme:
|
Windows, Linux
|
Programmiersprache:
|
C#, Windows: VB.NET
|
Lizenz:
|
propriet�re Lizenz
|
Vorteile: |
- zuk�nftiger Bestandteil von Windows
|
Nachteile:
|
- propriet�re Software
- keine Linux .NET Version verf�gbar
- komplett neue API
|
Entwicklungsumgebung:
|
Visual Studio .NET
|
WWW: |
|
Dokumentation:
|
�
|
Referenzprojekte:
|
|
Verbreitung:
|
bisher nur geringe Verbreitung
|
Zusammenfassung
Vor der abschlie�enden Beurteilung wird noch einmal auf die
gestellte Aufgabe verwiesen: Es geht um die Entwicklung eines
Front-Ends, das �ber Netzwerk-Kommunikation mit angeschlossener
Hardware kommuniziert. Dabei soll der Software-Quellcode auf
den Plattformen Linux und Win32 �bersetzbar sein. Die Anwendung
darf sich nicht von anderer Software auf dem System
unterscheiden. Durch diese Aufgabenstellung wird das Bild auf
die getesteten Pakete verf�lscht und kann nicht als allgemeine
Aussage gesehen werden.
Bestes Beispiel hierf�r ist das FLTK Toolkit. Hier bekommt man
in einem sehr kleinen Paket ein leistungsf�higes System. Die
St�rken liegen in geringer Codegr��e, guter Grafikanbindung und
guter Portierbarkeit. Diese Eigenschaften machen das Toolkit
f�r Projekte im Embedded- und Grafikbereich interessant. F�r
die Front-End Entwicklung spielt aber eher die Anzahl der
Klassen, das Handling und das Aussehen der erzeugten
Anwendungen eine Rolle. Somit ist FLTK f�r diese Aufgabe eher
weniger geeignet.
Eine herbe Entt�uschung f�r Software-Entwickler d�rfte das GTK+
Projekt unter Windows sein. Hier sollte die Linux Community
deutlich mehr Einsatz zeigen. Mit Warnungen auf der Web-Seite
gewinnt man jedenfalls kein Vertrauen. Dies ist um mehr schade,
als dass das GTK+ Paket als reines Linux Paket sehr gelungen
wirkt. Das Potential ist sehr gro�, die Umsetzung auf die
Windows Plattform l��t aber zu w�nschen �brig.
Der Einsatz der Exoten Smalltalk und Mozilla bleibt
Geschmacksache. Eine Firma, die mit selbstentwickelter Hardware
Geld verdient, wird wenig Sinn f�r philosophische Ans�tze
haben. Auch wenn Smalltalk die bessere objektorientierte
Programmiersprache ist und wenn Mozilla-XUL-Programmierung den
sowieso vorhandenen Browser noch sinnvoller erscheinen l��t, so
sind diese Pakete doch keine Mainstream Produkte zur
Software-Entwicklung.
Kylix f�llt bei dieser Betrachtung ebenso wie GTK+ f�r Win32
eher negativ auf. Von dem einstigen Glanz des Urprodukts Turbo
Pascal ist nur wenig geblieben. Mit diesem Produkt pr�sentierte
Borland in den 80er Jahren eine m�chtige IDE die sowohl auf
Home-Computern wie auch auf den fr�hen PCs lief. Es war bekannt
f�r seinen g�nstigen Preis und seinen schnellen Code. In der
Zwischenzeit hat sich viel ge�ndert. Aus Borland wurde Inprise
und dann wieder Borland. Aus Turbo Pascal wurde erst Object
Pascal, dann Delphi und schlie�lich Kylix (nat�rlich mit
Erweiterungen bzw. Ver�nderungen). Zumindest f�r neue Projekte
d�rfte ein Einsatz heute nur noch wenig Sinn machen.
Microsoft zeigt in diesem Umfeld, dass es die Zeichen der Zeit
erkannt hat. Historisch betrachtet hat der Konzern zun�chst
versucht, den Java Standard mit Visual J++ zu durchsetzen.
Neben den Java Standardbefehlen wurden Win32 API Zugriffe und
selbst Zugriffe auf die Windows Registry zugelassen (Was der
Sprachphilosphie v�llig widerspricht). Au�erdem wurden
automatisch Win32 Executables erzeugt. Nach gerichtlichen
Auseinandersetzungen mit Sun mu�te daraufhin bei jedem
�bersetzungsvorgang ein Warnhinweis angezeigt werden, dass die
erzeugten Applikationen wahrscheinlich nicht auf anderen
Betriebssystemen laufen werden. Das Ende der Geschichte war das
Einstellen des Java Engagements von Microsoft. Stattdessen
wurde eine v�llig neue Strategie entwickelt. Mit .NET und #C
wurde ein komplett neuer Standard entwickelt. Die Kombination
Windows, .NET und C# sind sicherlich ein gut zusammenpassendes
Paket, aber das muss man Microsoft auch f�r die ausgediente
Kombination Windows mit Visual C++ und MFC Klassenbibliothek
zugestehen. Der Nachteil dabei ist, dass man bedingungslos
einem Anbieter ausgeliefert ist, der "seinen" Standard (hier:
Windows) durchsetzen m�chte. Mit an Sicherheit grenzender
Wahrscheinlichkeit wird Microsoft in absehbarer Zeit keine
Umsetzungen von .NET auf andere Betriebssysteme planen. Die
freie Umsetzung Mono muss ihre Praxistauglichkeit erst noch
beweisen. Hier kann zu gegenw�rtigen Zeitpunkt noch kein
Resumee gezogen werden, auch wenn schon erste Achtungserfolge
erzielt wurden.
Ohne Einschr�nkung empfehlenswert sind somit die Pakete Qt,
wxWindows und Java. Die Wahl f�llt hier schwer, da alle 3
Pakete zum Erzeugen komplexer Front-End Software taugen. Je
nach Gewichtung der Punkte Support, Kosten,
Einsatzbereitschaft, Programmier-Philosophie, usw. d�rften sich
hier verschiedene Meinungen bilden. Die Unterschiede liegen
eher im Detail, so verbietet die Java Philosophie eigentlich
direkte Hardware Zugriffe. Daf�r kann es wieder bei anderen
Aspekten punkten. Rein technisch gesehen k�nnen diese 3
Konkurrenten die gestellte Aufgabe problemlos meistern.
Somit bleibt nur ein subjektives Ergebnis des Autors: Als Open
Source Fan wird man bei der gestellten Aufgabe wohl am ehesten
zu wxWindows tendieren. Neben einem stimmigen Konzept und guter
Tool Unterst�tzung sind ebenfalls ausreichend Dokumentation
vorhanden.