Plattformunabhängige Programmierung - ja oder nein?
-
Hallo Forum,
einerseits ist es ja sehr bequem, wenn man sich ganz gut mit Visual Studio auskennt, in seiner gewohnten Windows Welt zu bleiben, andererseits stellt sich die Frage, ob man nicht von vornherein einen plattformunabhängigen Entwurf verfolgen sollte. Es stellt sich also die Frage, ob ob dieser Mehraufwand letztlich überhaupt lohnt.
-
Das liegt im Auge des Betrachters und der Anforderung an die App.
Bei einer Anwendung um Windows Tweaks zu automatisieren macht es sicherlich wenig Sinn, diese mit Gewalt XPlatform zu programmieren.
Hier kann man ruhig zu WTL und/oder C# und WPF greifen.
Eine Anwendung die mit OpenGL zu tun hat - hier macht es sicherlich Sinn diese XPlatform zu halten.
Alles in allem eine Frage die man individuell entscheiden muss.Davon abgesehen bieten die großen Frameworks diese Möglichkeit als Bonus. Und man muss eine Anwendung die für Windows speziell geschrieben wird, deswegen nicht unbedingt mit WinAPI oder WTL/C# in die Tastatur hämmern.
-
Meine Frage bezieht sich eher auf allgemeine Anwendungsprogramme, wobei Spiele, die wegen Direct X meistens für Windows entwickelt werden, und systemspezifische Wartungs- und Tuningprogramme ausgeklammert werden sollen.
Welche IDE wäre denn für die plattformunabhängige Programmierung am besten geeignet?
-
Warum sollte man Spiele ausklammern? Man kann Spiele genauso XPlatform programmieren. DirectX ist nicht das Ende der Fahnenstange.
Beweisst Valve ja ganz gut. Bei mir laufen alle Valve Titel im OpenGL Modus.
Rein aus Prinzip^^.Die IDE ist völlig wurscht dabei. Wichtig ist, dass man ein ordentliches Buidlsystem nutzt wie CMake oder Bakefiles, was wiederrum die Projekt-Dateien erzeugt bzw Makefiles.
-
Die nervige Frage, welches GUI Framework wohl am besten ist, erspare ich dem Forum mal, allerdings Frage ich mich, ob der plattformunabhängige Ansatz nicht sehr viel zeitaufwändiger ist, als das ganze mit dem schönen WPF zusammenzubasteln. Gibt es denn eine große Nachfrage nach plattformunabhängiger Programmierung oder ist die eher wenig relavant?
-
Es kommt doch sicherlich auf die Kunden an, die man bedienen will. Wenn die Kunden eh nur Windows nutzen, kann und (meiner Meinung nach) soll man speziell für Windows entwickeln. Man kann natürlich versuchen viel mit Standard-Libs zu lösen. Aber es gibt so viele Features in Windows, von denen man profitieren kann, wenn man sie direkt nutzt, weil sie von Cross-Plattform-Libs nicht abgedeckt werden.
Ich habe z.B. eines festgestellt: wo sind die nennenswerten Kundenzahlen auf Linux-Desktop? Ich meine jetzt nicht ein paar FSF-Verfechter, sondern den normalen Kunden? Die Zahl ist verschwindend gering!
Wenn ich mir aber anschaue, wie groß der Mac OS X Markt ist, sieht das schon anders aus. Hier würde ich z.B. mir die Arbeit machen, und auf OSX portieren. Ich meine wirklich portieren, nicht einfach nur neu kompilieren. Weil hier lohnt sich das evtl., wenn ich eine Desktop-Anwendung für Windows habe.
-
Ein typisches Szenario wäre z.B. der Entwurf von Individualsoftware: Der eine Kunde nutzt Windows, ein anderer OS X, allerdings wäre es sehr aufwändig, deswegen noch Objective C zu lernen. Nachträglich ein Windows Programm auf den Mac zu portieren und umgekehrt ist aber sicherlich schwierig.
Viele nutzen Adobe Air oder Java in dem Zusammenhang, aber das wäre ja nur ein "Ausweichmanöver".
-
Wichtig ist, dass ein Programm den nativen Look and Feel einer Platform erhält. Tut es das nicht, dann fühlt sich das Programm fremd an und User tendieren dann dazu sich alternativen zu suchen. Ich finde GIMP auf Windows das beste Beispiel, aber brauche es halt leider. Gibt nicht viele Alternativen.
Mit Hilfe von QT und wxWidgets kann man diesen nativen Look and Feel liefern, bei GTK ist das nicht oder nur schwer möglich.
Das ist ein erhebliches Element bei der Wahl der Methode.
Von Java Programmen auf dem Desktop bin ich nach wie vor kein Fan. Eclipse ist sehr gut, aber von diesen Programmen im Silver-Java-Look bin auch eher nicht so der Fan.
-
Erstmal Danke für die Antworten
Das extremste mir bekannte Beispiel für ein eigenartiges GUI ist das GUI von Blender, aber wenn man sich eine Weile damit beschäftigt hat, merkt man, dass es recht gut durchdacht ist.
Ich habe das WxWidgets Framework jetzt installiert und über die Konsole ein Sample gestartet, aber das Kompilieren mit Eclipse funktioniert leider noch nicht, weil einige Header Dateien nicht gefunden werden
Da ich einen Mac nutze, bin ich diesen Anleitungen gefolgt:
http://wiki.wxwidgets.org/Building_WxWidgets_With_MacOS_X
und
http://wiki.wxwidgets.org/Creating_CDT_projects_for_wxWidgets_applicationsDie cpp- und die h-Datei habe ich von dieser Seite übernommen:
http://wiki.wxwidgets.org/Beech:First_steps
-
Scorcher24 schrieb:
Von Java Programmen auf dem Desktop bin ich nach wie vor kein Fan. Eclipse ist sehr gut, aber von diesen Programmen im Silver-Java-Look bin auch eher nicht so der Fan.
Wenn man bei Swing den nativen Look and feel einstellt sehen die Fenster ziemlich nativ aus. Ein normaler Benutzer könnte kaum einen Unterschied erkennen (zumindest unter Windows XP war das immer so^^).