Wird wxWidgets auch professionell/kommerziell genutzt?



  • Hi,

    ich habe ein wenig an der Oberfläche von Qt gekratzt und möchte nun auch mal ein wenig mit wxWidgets spielen. Nun stellt sich mir die Frage, ob denn wxWidgets auch so professionell und kommerziell eingesetzt wird wie Qt. Man ließt ja auch viel mehr Stellenangebote die Qt-Kenntnisse voraussetzen als wxWidgets.

    Wie ist hier die Einschätzung der Profis? Bevorzugt ihr ein Framework von den beiden und wenn ja welches und warum?



  • Qt wird viel mehr gefördert und ist dementsprechend weiter entwickelt und wird auch öfter eingesetzt (man fördert natürlich Projekte, die man selber auch gerne nutzt).

    Dadurch ist Qt natürlich auch sehr umfangreich und auch vom Code her viel einfacher und moderner. Dagegen steht die strikte Lizensierung und die damit verbundene Kommerzialisierung.

    wxWidgets ist jetzt nicht das krasse Gegenteil, aber es hinkt diesbezüglich etwas hinterher. Der Code ist nicht so modern und die Biliothek nicht so umfangreich. Trotzdem bietet es mehr als reine GUI, z.B. auch Netzwerkbibliotheken.

    Eingesetzt wurde wxWidgets z.B. bei VLC und CodeBlocks.

    Die meisten Firmen kaufen sich eher Qt-Lizenzen, da sie umfangreichen Support dazubekommen und dann einfach alle ihre Anwendungen mit Qt umsetzen. Und noch viel mehr Firmen ist das alles komplett egal, die programmieren eh nur für Windows.

    Ich weiß nicht, wie das heutzutage aussieht, aber früher waren die Qt Lizenzen für private Projekte, die dann sogar noch kommerziell waren einfach zu teuer. Bei wxWidgets sieht das besser aus.

    Ans Ziel kommt man aber mit beiden Varianten. Ich habe bisher nur wxWidgets eingesetzt und mir hat es vollkommen ausgereicht.



  • xycyxc schrieb:

    Ich weiß nicht, wie das heutzutage aussieht, aber früher waren die Qt Lizenzen für private Projekte, die dann sogar noch kommerziell waren einfach zu teuer.

    Qt wird auch unter LGPL lizenziert. -> Es müssen keine lizenzen gekauft werden, auch wenn man Qt in einer kommerziellen Applikation verwendet.
    Nur wenn man erweiterten Support haben möchte oder Änderungen an Qt selbst nicht offen legen möchte, muss eine lizenz von Digia kaufen.


  • Mod

    Mal meine Erfahrungen als Freelancer.

    Ich habe bisher mit wxWidgets wesentlich mehr Geld als mit Qt verdient.
    Also ja, es wird in der Industrie durchaus häufig genutzt, auch professionell, manchmal allerdings auch nur in Inhouse tools.
    Habe damit aber schon Config-Oberflächen für Ladenwaagen geschrieben z.B.

    Qt wird aber auch viel genutzt, und würde ich für den Job als Programmierer auch vorziehen. Nur wirds halt häufig in Bereichen eingesetzt, wo Freelancer nicht so gefragt sind, wie z.B. im Mittelstand.

    Für eigene Projekte würde ich heute eher Qt als Basis nutzen, wobei hier wxWidgets kommerziell gesehen mit der Lizenz manchmal den Vorteil hat, das die Rechtsabteilung diese für besser hält. Leider gibts Qt immer noch nicht unter BSD Lizenz, dann wäre dies anders.



  • Meiner Meinung nach handeln immer noch viele Firmen nach dem
    Moto: Was nichts kostet taugt nichts.

    Gerne wird auch mit dem notwendigen Support argumentiert, der
    bei Open Source Software ja nicht vorhanden ist.

    Ich habe dann immer gesagt, wenn es ein vernuenftiges
    Programm waere braeuchte man gar keinen Support.

    Also arbeiten kann man wohl mit beiden, wobei ich nur
    mit wxWidgets zu tun habe. Damit war ich bis jetzt
    immer zufrieden.



  • Wir haben Wx auch Jahrelang in komerziellen Produkten benutzt. Allerdings nur die GUI-Klassen.

    Leider müssen wir uns jetzt dank der Cloud/Web-Scheisse davon verabschieden und unsere Produkte auf Web-Anwendungen umstellen. Dafür verwenden wir Wt. Ebenfalls nur die GUI-Klassen und ich bin froh, dass wir bei Wx ebenfalls nur die GUI-Klassen verwendet haben, so haben wir viel weniger Arbeit bei der Umstellung.



  • Ja, wird es.
    Prominentes Beispiel:
    Die Unreal Engine setzt auf wxWidgets und viele andere.
    Wenn du ein Unreal Game hast, findest du im Verzeichnis die wx*.dll, wie als Beispiel bei Batman oder im UDK selber. Borderlands 2 hat sie nicht, aber die haben denke ich auch Source Code Access^^. Zumindest für den Editor/Baker etc verwendet UE aber wxWidgets.
    http://imgur.com/UQmzk

    http://wxwidgets.blogspot.de/2012/08/did-you-know-that-intel-vtune-used.html
    http://wxwidgets.org/about/screensh.htm



  • Wenn jemand "professionell/kommerziell" entwickeln will, tauchen Fragen auf nach dem Umfang des Toolkits, ob alles Interessante abgedeckt ist, oder ob man dann noch was ranpappen muss. Sind alle Zielplatformen abgedeckt? Wie gut? Wie wird das Toolkit entwickelt? Bezahlte Vollzeitentwickler, oder Freizeit, oder gemischt? Wieviele? Kann ich Support einkaufen, wenn ich ihn brauche? Wie gross sind die freien Communities?

    Ein paar Links:

    http://irc.netsplit.de/channels/details.php?room=%23qt&net=freenode
    http://irc.netsplit.de/channels/details.php?room=%23wxwidgets&net=freenode
    http://www.google.com/trends/explore#q=qt%2C wxwidgets&cmpt=q



  • Wir in unserer Firma setzen auch wxWidgets ein und auch nur den GUI-Part aus den genannten Gründen. Es gab auch schon Versuche Qt zu verwenden, dort würden wir aber auch nur den GUI-Part nehmen um unabhängig zu bleiben. Leider ist das Arbeiten mit Qt ein Bruch mit dem Standard C++ was uns erst einmal doch bei wxWidgets bleiben lässt.

    Eine Firma hinter einem Produkt bietet zwar Support, aber auch nur solange wie die Firma existiert. Bei Entwicklung möchten wir uns ungern an eine kommerzielle Firma freiwillig binden. Deswegen nutzen wir auch, wenn es geht, nur unabhängige Standards und z.B. kein C# .NET etc.



  • Mit dem "Bruch mit Standard-C++" ist wiedermal "moc - wie missverstehe ich Dich am besten?" gemeint nehm ich an?

    Ich glaube, das Thema hatten wir schon mal. Fuer den Compiler sind das alles nur Macros, einige davon expandieren sogar zu gar nichts. Einfach nur eine Markierung im Quellcode. Macros hast Du tonnenweise auch in wxwidgets. Das laeuft durch einen ganz normalen C++-Compiler. Dass _dieselben_ Quellen zusaetzlich noch durch einen Code-Generator laufen, ist einfach nur die bequemste Art, Laufzeit-Introspektion u.a. anzubieten. Man kann das gerne auch von Hand machen, oder parallel zum eigentlichen Code noch Klassenbeschreibungen pflegen und aus denen dann Code erzeugen. Will man aber nicht. Und braucht man nicht. Uebernimmt naemlich netterweise Moc.

    Solange C++ sowas nicht von Haus aus kann, wirst Du Codegeneratoren auch nicht los. Mit C++11 bekommt man zumindest statische signal/slot-Verbindunung halbwegs schmerzarm hin, siehe http://qt-project.org/wiki/New_Signal_Slot_Syntax. Konsequenterweise braucht Du fuer diese Faelle dann auch keinen Moc mehr.

    Abgesehen davon duerfte es nicht allzuviele nichttriviale C++ (oder auch C)-Projekte geben, die komplett ohne generierten Code auskommen, d.h. kein flex, bison, antlr, xdr etc verwenden. Stoert auch nicht. Fuer sowas gibt's Makefiles und Buildsysteme, die das koennen.



  • Du kannst mit wxWidgets, bis auf IMPLEMENT_APP, komplett ohne Macros programmieren.



  • Bei Qt den MOC als nachteilig darzustellen finde ich falsch. Das Teil macht ja kein Hexenwerk sondern generiert nur zusätzliche .cpp die das Programmieren aber deutlich vereinfachen. Man könnte den MOC auch abschalten und die .cpp per Hand erstellen. Desweiteren ist von Qt und MOC der Source frei verfügbar, falls es also Probleme gibt kann man den MOC selbst verändern.
    Der große Vorteil von Qt ist die Manpower die dahintersteckt (es bleibt aber abzuwarten wie es nun bei Digia weitergeht).
    An wx arbeiten sehr gute Leute, aber leider deutlich weniger als bei Qt und das merkt man an den Fortschritten bei beiden Projekten.
    Das tolle an Qt ist die flexibilität der GUI (alles kann sehr einfach dem gewünschten Style angepasst werden). Bei wx ist das Stylen der GUI sehr umständlich (wxSkin oder wxUniv < was aber nicht so gut ist).
    Auch die Container-Deklaration bei wx hat mir nicht gefallen, bei Qt sind die Container einfacher zu handhaben. Und das Sahnehäubchen bei Qt ist der Qt-Creator mit perfekter Einbindung des GUI-Editors.

    Update: Das mit dem Editor empfinde ich für wx als großen Nachteil.
    Wx sollte sich einen Editor nehmen (wxdev-c++ nicht, da delphi), am besten wohl codeblocks, da selbst in wx realisiert und soetwas machen wie qt-creator. Also eine IDE mit Gui-Editor (ala wxFormbuilder, aber auch mit freier Platzierung der Controls) und so dem wx-Entwickler ein gutes Entwicklungstool mit in die Hand geben das immer auf aktuellem Stand ist (bei vielen wx-GUI-Editoren fehlen die neuen Controls oder es sind nicht alle Properties einstellbar).



  • Bei Qt den MOC als nachteilig darzustellen finde ich falsch. Das Teil macht ja kein Hexenwerk sondern generiert nur zusätzliche .cpp die das Programmieren aber deutlich vereinfachen. Man könnte den MOC auch abschalten und die .cpp per Hand erstellen. Desweiteren ist von Qt und MOC der Source frei verfügbar, falls es also Probleme gibt kann man den MOC selbst verändern.

    Das Problem ist ja nicht, ob es nun Open- oder ClosedSource ist, sondern das moc eine Spracherweiterung ist (aus meiner Sicht eine völlig unnütze) und die daraus resultierenden Probleme.

    Und das Sahnehäubchen bei Qt ist der Qt-Creator mit perfekter Einbindung des GUI-Editors.

    Qt-Creator ist bestenfalls Spielzeug. Die sich eigentlich nie wirklich so einstellen lässt, wie man es gerne hätte. Da suche ich mir lieber eine weniger stylische IDE mit der man aber auch Arbeiten kann.

    Update: Das mit dem Editor empfinde ich für wx als großen Nachteil.
    Wx sollte sich einen Editor nehmen (wxdev-c++ nicht, da delphi), am besten wohl codeblocks, da selbst in wx realisiert und soetwas machen wie qt-creator. Also eine IDE mit Gui-Editor (ala wxFormbuilder, aber auch mit freier Platzierung der Controls) und so dem wx-Entwickler ein gutes Entwicklungstool mit in die Hand geben das immer auf aktuellem Stand ist (bei vielen wx-GUI-Editoren fehlen die neuen Controls oder es sind nicht alle Properties einstellbar).

    Wieso? Gibt es irgendwelche Gründe das zu tun?
    Davon abgesehen hat wxFormbuilder nichts mit dem wxWidgets Projekt zu tun.

    Gegen den Einsatz von Qt steht auch, das mir (und vielen anderen) der Hauptsponsor nicht gefällt. Nokia (Ihr wisst schon, Bochum und so).



  • Qt ist in der Zwischenzeit ein Riesenmonster geworden, ich brauche nur die GUI Parts und da setze ich lieber auf ein Framework was auch fast nur dieses bietet und locker von ein paar Leuten weiter gepflegt werden kann, denn die finden sich immer.

    Zumal kann ich damit wirklich machen was ich will, es kostet mich nix und muss mir nie um irgendwas einen Kopp machen. Mir ist es da ziemlich egal ob sie mir irgendwelchen Features hinterher hängen, für meine Bedürfnisse hat es immer gereicht.



  • Softwaremaker schrieb:

    Update: Das mit dem Editor empfinde ich für wx als großen Nachteil.
    Wx sollte sich einen Editor nehmen (wxdev-c++ nicht, da delphi), am besten wohl codeblocks, da selbst in wx realisiert und soetwas machen wie qt-creator. Also eine IDE mit Gui-Editor (ala wxFormbuilder, aber auch mit freier Platzierung der Controls) und so dem wx-Entwickler ein gutes Entwicklungstool mit in die Hand geben das immer auf aktuellem Stand ist (bei vielen wx-GUI-Editoren fehlen die neuen Controls oder es sind nicht alle Properties einstellbar).

    NEIN! Strikt dagegen.
    Die Stärke von wxWidgets ist eben, dass man nicht festgelegt ist auf ein solches Programm und es gibt so schon genug zu tun für die Devs. Ausserdem hat man immer noch die Freiheit komplett ohne GUIEditor zu programmieren.
    Davon abgesehen ist wxFormBuilder immer recht aktuell und ich nutze sowieso nur WXRC und keinen generierten Code.



  • Ich arbeite sehr gerne mit einem GUI-Editor und als ich bei wx auf der Suche nach einem wahr, blieb eigentlich nur wxFormbuilder übrig. In den anderen waren neue Controls garnicht enthalten (wxAUI etc.).
    wxFormbuilder hat mir gefallen und wird gut gepflegt, nur das man erst die Sizer anlegen muss und dann darin die Controls fand ich beim GUI-Entwurf störend. Bei anderen (Qt und Lazarus) schmeisst man die Controls erstmal auf das Panel und kann dann entscheiden wie das Layout sein soll (oder auch so ohne).
    Ich mags halt gerne einfach 😉
    Nur mein größtes Problem mit wx war, dass einige meiner Kunden das Aussehen der Programmoberfläche ihrem Corporate Design angepasst haben wollten (Hintergründe und Controls in bestimmten Farben usw.). Das geht mit Qt und Stylesheets ganz einfach ohne was am Code ändern zu müssen (CSS-Datei).



  • Was aber auch die Stärke von wxWidgets ist.
    QT Programme sind relativ leicht zu erkennen und GTK Programme erkennst du 200 Meilen gegen den Wind (meist aber schon bei der Installation der Runtime :p).
    Für normale Programme die im Internet veröffentlicht werden ist es aber imho wichtig ein natives Look and Feel zu haben. Viele möchten keine Programme benutzen die nicht nativ aussehen. Das ist ein großer Faktor.
    Bei Firmen kann ich es noch halbwegs verstehen, aber ich bin mir sicher dass man auch hier was mit wxWidgets machen könnte. Wenn auch nicht so einfach, zugegeben.
    Leider wurde die wxSkin Library nie fortgeführt.



  • Na dann passt halt Qt besser zu dir und zu uns wxWidgets. Bei Bedarf kann man auch beides machen, ist ja ne freie Welt. *hust jedenfalls bei uns^^


Log in to reply