Welche Bibliothek zum plattformunabhägigen Programmieren?
-
Blue-Tiger schrieb:
Auch noch erwaehnenswert: wxWindows (www.wxwindows.org) ist auch noch Cross-Plattform. Die API gleicht der MFC. Kleiner Nachteil: die binaries werden ziemlich gross (500 kb mit allen Optimierungen im VC6 nur fuer's Hello-World Beispiel aus dem Tutorial)... Diese Tage soll wenn ich recht informiert bin wxWindows 3.0 rauskommen (aktuell ist 2.4.2)
Ob die Sache mit GTK und Windows stimmt weiß ich nicht da ich schon länger kein Windows mehr verwende.
wxWindows verlangt dem Programmierer aber einen eher ekelhaften Programmierstil ab, schon die MFC-Ähnlichkeit ist eher erschreckend...Lies einfach mal
http://ask.slashdot.org/askslashdot/00/06/02/025232.shtml?tid=156
und
http://freshmeat.net/articles/view/928/
-
Die Message/Event-Maps von wxWindows sind lädiglich MFC-like. Der Rest ist ansonst recht gutes OOD und man kann sehr einfach und logisch entwickeln.
Der Grund des "MFC-like" ist jedoch historisch bedingt, und das wird auch in der FAQ erläutert: viele Plattformen hinken C++-mäßig noch hinterher, und bieten ganz einfach keine RTTI an. wxWindows erhebt ganz einfach für sich den Anspruch, das die Lib überall auf jeder Plattform unterstützbar ist! Ein Gedanke der nicht ganz falsch ist. Auch einer der Gründe warum wxWindows z.B. nicht std::string nutzt sondern das eigene wxString, weil es Systeme gibt/gab, die keine STL haben/hatten. Die unterstützen Plattformen lassen GTK++ und Qt geradezu lächerlich aussehen! Da nehme ich gerne ein paar wenige MFC-likes in Kauf.
Aber auch wxWindows bleibt nicht stehen und soll endlich mit Version 3.0 den Sprung zu aktuellen C++-Compilern schaffen! D.h. man hat sich vorgenommen, endlich alle aktuellen C++-Möglichkeiten zu nutzen. Borland hilft hier sogar seit ein paar Monaten mit eigenen Mitarbeitern tatkräftig und offiziell aus! Der nächste Borland-C++-Compiler wird auch wxWindows standardmäßig dabei haben. Auch wird WxWindows 3.0 verstärkt die STL nutzen, RTTI usw. Ich selber nutze wxWindows und freue mich schon riesig auf 3.0!
Zu den zu großen Binaries: ja, sie sind groß. Aber wxWindows ist auch seeeeeeeehr mächtig! Weiterhin kann man wxWindows auch als DLL auslagern, und somit kann man seine Software auch ohne wxWindows-Code ausliefern, wenn der User bereits die DLLs von anderen wxWindows-nutzenden Programmen auf seiner Platte hat. Wo ist das Problem?
-
Es ist ja klar, dass Borland wxWindows unterstützt. Der BuilderX stützt sich ja auf wxWindows.
-
Artchi schrieb:
Der Rest ist ansonst recht gutes OOD und man kann sehr einfach und logisch entwickeln.
Hm, ich weiß nicht, gute OOP sieht für mich anders aus.
Der Grund des "MFC-like" ist jedoch historisch bedingt, und das wird auch in der FAQ erläutert: viele Plattformen hinken C++-mäßig noch hinterher, und bieten ganz einfach keine RTTI an.
RTTI ist ja auch nicht unbedingt nötig um schöne Programme zu schreiben, im Gegenteil: Oft ist sie sogar eher hinderlich dafür.
wxWindows erhebt ganz einfach für sich den Anspruch, das die Lib überall auf jeder Plattform unterstützbar ist! Ein Gedanke der nicht ganz falsch ist. Auch einer der Gründe warum wxWindows z.B. nicht std::string nutzt sondern das eigene wxString, weil es Systeme gibt/gab, die keine STL haben/hatten.
Hm, obwohl es auch noch Leute mit 486ern mit 4MB RAM gibt verwende ich gerne KMail und Galeon, auch wenn diese Programme nicht auf besagter Hardware laufen würden.
Die unterstützen Plattformen lassen GTK++ und Qt geradezu lächerlich aussehen! Da nehme ich gerne ein paar wenige MFC-likes in Kauf.
Hm, was sind denn die unterstützten Plattformen?
Win16/32/NT sowie Unix und MacOS, oder?
Hm, GTK+ unterstützt meines Wissens Unix, Win32/NT, MacOS und QT läuft unter Windows32/NT, Unix, Mac OS und embedded Linux.
Dass ich weder mit QT noch mit GTKmm Win16-Programme schreiben kann bereitet mir keine schlaflosen Nächte.Aber auch wxWindows bleibt nicht stehen und soll endlich mit Version 3.0 den Sprung zu aktuellen C++-Compilern schaffen!
Ich bin gespannt.
-
hi,
kann es sein das es von Qt keine kostenlose Windowsversion mehr gibt?
Ich muss sagen, dass ich die Preise für die Lib ziemlich übertrieben finde. Ich kenne mich in diesen Bereichen zwar überhaupt nicht aus, aber $ 1550,- sind schon ganz schön fett.Tschau Gartenzwerg
-
Naja, 1550$ sind im kommerziellen Bereich doch peanuts! Für den Amateur-Programmierer aber natürlich völlig überdimensioniert. Qt war aber schon damals für Windows nicht kostenlos.
Wenn du etwas kostenloses für Windows suchst, dann mußt du was anderes suchen. Beispiele wurden ja hier genug genannt, z.B. wxWindows oder GTK.
-
hi,
meiner Meinung nach gab es irgendwie eine non-commercial-Edition von Qt.
Aber dann werde ich wahrscheinlich auf GTKmm umsteigen.
Kennt jemand dafür gute Tutorials?Tschau Gartenzwerg
-
Ich muss nman recht geben. Nur um 16-Bit Windows zu unterstützen gleich 500Kb overload einberechnen und mit einem ekelhaften C++ Stil zu programmieren. Das lohnt sich nicht, nur wenn man explizit Win16 unterstützen will.
@Gartenzwerg
Auf der GTKmm-Homepage findest du ein Tutorial und eine Referenz. In der nächsten Ausgabe der FreeX ist vermutlich eine Einführung in GTKmm
-
kingruedi schrieb:
Ich muss nman recht geben. Nur um 16-Bit Windows zu unterstützen gleich 500Kb overload einberechnen und mit einem ekelhaften C++ Stil zu programmieren. Das lohnt sich nicht, nur wenn man explizit Win16 unterstützen will.
Na na na, du tust wxWindows doch ziemlich unrecht. Im Gegensatz zu GTKmm ist wxWindows nicht nur GUI-Lib, sondern geht schon mehr in Richtung Framework. Das ist wohl auch der Grund, warum Borland die Lib gewaehlt hat, um die VCL zu ersetzen: sie bietet annaehernd gleiche Funktionalitaet. Ich hoff ich tu GTKmm jetzt nicht Unrecht (hab zumindest bei einem ersten schnellen Blick in die GTKmm-Refernz nix davon gefunden) aber wxWindows bietet einiges an Dingen, die GTK nicht bietet.
z. B. eigene Socekts-Klassen (nicht blockende Sockets auch unter Windows), ODBC-Anschluss usw...
IMO kommt der ganze Overhead mehr von diesen Zusaetzen als von der Win16-Unterstuetzung
-
Gartenzwerg schrieb:
Ich hätte gerne eine GUI-Lib für C++, mit der meine geschriebenen Programme unter Windows und Linux laufen.
Blue-Tiger schrieb:
Im Gegensatz zu GTKmm ist wxWindows nicht nur GUI-Lib, sondern geht schon mehr in Richtung Framework.
Gartenzwerg sucht aber wie Du oben lesen kannst eine GUI-Lib.
Davon mal abgesehen: Wenn ich mehr Features brauche als GTKmm hat dann verwende ich eben GNOMEmm, ich sehe kein Problem.
Und dass mehr Features automatisch mehr Bloat heißen müssen stimmt keineswegs, gerade wenn diese Features nicht verwendet werden sollte der resultierende Code nicht darunter leiden müssen.