what's library is better

This forum can be used to talk about general design strategies, new ideas and questions in general related to wxWidgets. If you feel your questions doesn't fit anywhere, put it here.
Post Reply
Erni
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Mar 10, 2005 5:35 pm

what's library is better

Post by Erni » Sun Apr 10, 2005 12:46 am

what's library is better MFC ,or QT,or wxWidgets ?
and why?
:P :roll:

Avi
Super wx Problem Solver
Super wx Problem Solver
Posts: 398
Joined: Mon Aug 30, 2004 9:27 pm
Location: Tel-Aviv, Israel

Post by Avi » Sun Apr 10, 2005 1:36 am

Well, why not just google for a comparison? There are many... :roll:

Tyler
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 246
Joined: Fri Sep 03, 2004 12:37 am
Contact:

Post by Tyler » Sun Apr 10, 2005 2:04 am

This is probably a biased place to be asking that question, but wxWidgets because it's (almost) easy, free, and cross-platform.

leio
Can't get richer than this
Can't get richer than this
Posts: 802
Joined: Mon Dec 27, 2004 10:46 am
Location: Estonia, Tallinn
Contact:

Post by leio » Sun Apr 10, 2005 3:39 pm

Compilers: gcc-3.3.6, gcc-3.4.5, gcc-4.0.2, gcc-4.1.0 and MSVC6
OS's: Gentoo Linux, WinXP; WX: CVS HEAD

Project Manager of wxMUD - http://wxmud.sf.net/
Developer of wxGTK;
gtk+ port maintainer of OMGUI - http://www.omgui.org/

upCASE
Site Admin
Site Admin
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Re: what's library is better

Post by upCASE » Mon Apr 11, 2005 7:59 am

Hi!
Erni wrote:what's library is better MFC ,or QT,or wxWidgets ?
and why?
Well, this is really a weird question to ask here, since I guess all of us visit here, because we think we found the "best" toolkit :D
Ok, honestly: As I've worked with all of the above (plus Java, don't forget about that :D ), I'll try and comment a little...

Java vs. wxWidgets
Both share the same idea: Write code that runs everywhere. The major difference is, that Java says "compile once, run everywhere", where wxWidgets says "write once, compile everywhere".
The downside of Java is that
  • - You need a runtime environment on the target platform, as Java itself doesn't create true object code.
    - Java doesn't use "native" GUI, but tries to mimic it.
    - Java is (in some cases) slower, because of the just-in-time compilation (although it gets better with every version I admit).
The good thing is that you can compile the program on windows and it will run on linux without a change. Well, except that GUI stuff might look different.
Java is very complete as has been designed quite well. It's a really good choice for quick hacking and internet-based-apps.
Personally I don't use Java that often, because I allways feel like giving control away. Although compiling once, running everywhere is a cool idea, you will still have to test and change parts. Java would be my first choice if somebody wants me to name the language I would teach my son :D But for "serious" development, I'd still stick with C/C++.

Qt vs. wxWidgets
A good thing to be compared! :D
Qt comes very close to wxWidgets as of completeness and basic ideas: "Write once, compile everywhere". Still, Qt is very different. Qt makes it very easy to design interfaces, as it brings QtDesigner with it (a quite complete tool, has some bugs though). For special tasks, as event handling, Qt needs to "extend" C++. It uses a mechanism called "signals&slots" and add new keywords to make them work. Therefor Qt code isn't real C++ code. Qt needs the MOC, meta object compiler, to run over the code and change it into something readable by every compiler. This adds some overhead... Another downside is the licensing model: While wxWidgets is free, Qt has different licenses for different platforms. With wxWidgets you are allowed to write commercial apps, while with Qt you'll have to pay once it gets commercial. Qt, btw., doesn't use native GUI, too. Instead it "draws" all controls. With older version it was pretty easy to tell if an app was written in Qt.
Qt sure is nice. If you need professional support to turn to, it's a good choice. You get this nice printed newsletter four times a year and stuff. Still, I dislike that MOC and the licensing model.

MFC vs. wxWidgets
MFC and wxWidgets aren't that different as one might think. The eventhandling is quite the same and most classes are there in both toolkits. Big difference is: MFC isn't portable, unless portable means "runs on every Windows". Oh yes: MFC is proprietary...
I used MFC quite a lot. It truely is good. But when it comes to portablility... Well, thank god porting from MFC to wxWidgets isn't a hard task :D

Conclusion
Having tried a lot of things, wxWidgets just suites me best. It's complete, still in development, I can change the code, it uses native platform GUI elements, is available for all major platfoms, costs nothing....

Wow, this took some time :D
Anyway: Just my two cents...
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda

alexcoppo
Knows some wx things
Knows some wx things
Posts: 37
Joined: Mon Sep 06, 2004 8:56 am
Location: Italy
Contact:

Post by alexcoppo » Mon Apr 11, 2005 9:22 pm

MFC is limited to Windows and, notwithstanding what MS might tell you, actually abandoned (some new classes per release is NOT maintaining a library, it is mocking the developers!).

Qt has a DREADFUL cost, there is NO free (i.e. GPL) version for Windows, and lacks many classes you find in wxWidgets (e.g. there is nothing like wxCmdLineParser for processing command line options).

Other C++ toolkits have a tiny following.

Java, like a .NET language is another thing, not comparable to C++ toolkits.

I heartly recommend wxWidgets (though a I have to consult using Qt... :( ).

Bye!!!

leio
Can't get richer than this
Can't get richer than this
Posts: 802
Joined: Mon Dec 27, 2004 10:46 am
Location: Estonia, Tallinn
Contact:

Post by leio » Tue Apr 12, 2005 10:22 pm

Rumors say QT4 will be GPLed on Windows and other platforms too. At least so I've heard. But that's still GPL, so if you use it your app will have to be GPL too, whereas with wxWidgets you can freely do commercial applications without having to pay a cent. Of course if you like it, donations and alike show good-will.

upCase, could you check out and make the aforementioned wiki page better with your knowledge?
Compilers: gcc-3.3.6, gcc-3.4.5, gcc-4.0.2, gcc-4.1.0 and MSVC6
OS's: Gentoo Linux, WinXP; WX: CVS HEAD

Project Manager of wxMUD - http://wxmud.sf.net/
Developer of wxGTK;
gtk+ port maintainer of OMGUI - http://www.omgui.org/

upCASE
Site Admin
Site Admin
Posts: 3176
Joined: Mon Aug 30, 2004 6:55 am
Location: Germany, Cologne

Post by upCASE » Wed Apr 13, 2005 7:01 am

Hi!
leio wrote:upCase, could you check out and make the aforementioned wiki page better with your knowledge?
I could, but reading it it seems allready very complete to me. My posting above is just my opinion and my point of view. The general differences and matches are almost identical.
A table with all possible classes listing if they exist in one toolkit could be quite usefull, as well as a new section about "Why use wxWidgets". But this would be quite a lot work and I doubt that I have the time for that... It would definitly make deciding on a toolkit easier. I remember when I introduced wxWidgets to my colleagues. Such a table would have been quite useful :D Anyway: I managed to point out the advantages and showing an example app running on CE, XP and on a SuSE box did the rest :lol:
OS: OpenSuSE, Ubuntu, Win XP Pro
wx: svn
Compiler: gcc 4.5.1, VC 2008, eVC 4

"If it was hard to write it should be hard to read..." - the unknown coder
"Try not! Do. Or do not. There is no try." - Yoda

Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands
Contact:

Post by Jorg » Wed Apr 13, 2005 7:23 am

Well maybe not classes but recurring issues that people have when coming from other toolkits like;

- What kind of Tcp/Ip classes do I have
- Can I do owner draw stuff
- How far can I go with deriving a control and modify it's behaviour
- Does it have archiving classes
- What advanced controls are there
- What standard windows controls are supported now (also for gtk/OSX)

Those keypoints will allow people to instantly see what they want to choose. If your app makes use heavily of owner draw controls you might want to consider something else as it is not supported on all platforms. Things like that will be very useful

- Jorgen
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb

Post Reply