Mit Java hat man weitgehende Binärkompatibilität. Zugegeben, Java ist von barocker Komplexität und manchmal muß man für einfache Aufgaben durch Reifen springen, aber in Sachen Portabilität ist Java ganz weit vorne.Zitat von Ineluki
Ansonsten kommt man an C/C++ nicht vorbei. Dotnet/Mono ist sehr begrenzt zwischen Windows und Linux portabel (solange du im Wesentlichen alle Windows-Standardklassen vermeidest und GTK installierst), läuft aber AFAIK sonst nirgends. Objective-C läßt sich zwar auf allen großen Plattformen kompilieren, ist aber nur für die Apple-Welt relevant. Python und sonstige Skriptsprachen können zwar oft GUIs, sind aber nur für Linux interessant.
Wenn man portable GUI-Anwendungen schreiben will ist GTK übrigens nicht unbedingt die erste Wahl - der Anwender muß erstens immer noch GTK bei sich installieren und zweitens neigen GTK-Anwendungen dazu, unter Windows nicht hundertprozentig wie Windows-Anwendungen auszusehen. Das gilt auch für Qt.
In Sachen portable GUIs dürfte wxWidgets unübertroffen sein - für Windows kompiliert greift es auf GDI zurück, für Linux auf GTK und für OS X auf Carbon. Damit kriegst du auf jeder Plattform ein sehr natives Look-and-Feel. Allerdings gibt es AFAIK für wxW keine guten freien RAD-IDEs (im Gegensatz zu beispielsweise Qt oder FLTK).
Wenn die Softtware auch unter MacOS laufen soll hast du im Wesentlichen die Wahl zwischen Java und C++/wxWidgets. Anders dürfte es schwer werden, ein gutaussehendes Programm hinzukriegen. (Kommt mir nicht mit GTK und Qt. Auf dem Mac sind GTK und Qt derb häßlich.)
FLTK verdient eine Sondererwähnung: Es macht deinen Code minimal größer, läuft auf vielen Plattformen und kommt mit einer brauchbaren RAD-IDE, dafür ist es allerdings auch pottenhäßlich. Also, so richtig. Windows 95 war schöner.





Zitieren