The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Qt or wxWidgets?

OK, Qt is now open source and available under LGPL.  Yet, I am still a bit confused whether to use Qt or wxWidgets.

I know that wxWidgets has had (for years) the most open and truest open licensing in that you NEVER paid for using it for anything.  You could resell it in any form and you could keep all your code closed source.

So even though Qt is now "open" and under LGPL can one really use it for commercial apps without a commercial license?  I believe the LGPL license is not "true open" like wxWidgets.

So which is a better licensing scheme for a developer?  Obviously I am just talking about licensing not technical merits, but if you have technical opinions those are welcome to.
Trying the mISV Thing
Sunday, January 18, 2009
wxWidgets is licenced under the LGPL with one extra permission - that you may statically link it rather than provide a dll. To be honest that's not a big deal for most people.
I do like wxWidgets, I worked exclusively on it for 3years writing an app that sold for $50K/seat.
But it has a lot more rough edges than QT, unicode was a pain (although I think that is fixed now) and the Mac look and feel is not as good.

Now that QT is LGPL I expect a lot of community interest behind it and a lot more tools to make life easier.

One point to consider - if you know MFC or are converting an MFC codebase then wx is very similair - a port of MFC to wx while not quite search/replace, is trivial.
Martin Send private email
Sunday, January 18, 2009

If you were starting today with a clean slate developing a brand new app which would you choose, Qt or wx?

"I do like wxWidgets, I worked exclusively on it for 3years writing an app that sold for $50K/seat."

Interesting!  That sounds like a very substantial app and a good data point for my decision.  If I may pick your brain more about wxWidgets and doing substantial work with it: What was the application, was it more computational with just a little GUI or lots of GUI, what platforms did it ship on, did it use any wxWidgets networking or database support, etc?
Trying the mISV Thing
Sunday, January 18, 2009
I've used both extensively.  My feeling is that Qt is more polished (both on the programming side and the look-and-feel side).

I would consider Qt before Wx for a new project.  But why don't you write a simple project with both to make you own idea?
Sunday, January 18, 2009
Qt is more mature and has a larger community. The framework never ceases to improve. Two days ago I saw a webcast about QWebkit. I saw a mini web browser done with less than 40 lines of C++ code (of course it was basic basic, but with Python that means yet few less lines). There was also a demo of how Qt widgets can be manipulated through Javascript.

As someone who has started with wxpython then switched to pyqt, I have not regretted the choice. wxpython lacked flexibility for our project (which required a lot of customizations). And integration with other libraries and frameworks were inexistant, very primitive. or poorly done. I was afraid of the developer license fee then this LGPL license was announced.

I have used Python bindings of both frameworks so I don't know a lot about the issues in the bracers world. But I think beginners are frustrated that Qt reinvents many things, just like Boost did for STL. Some functions expect Qt types to be returned though. But one does not have to worry about this really.
Victor the Python Artist Send private email
Sunday, January 18, 2009
"wxWidgets is licenced under the LGPL with one extra permission - that you may statically link it rather than provide a dll."

That's it?  The Qt folks won't allow you t static link?  That is just silly!

Yea, yea, yea, I know it is theirs to do with as they like.  I am just tired of this sort-of-open-source thing.  Lets have REAL TRUE OSS!

Kudos to the wxWidgets creators, programmers, and community for showing the way how to write a license!
Sunday, January 18, 2009
I used wxWindows about 4 years ago (I use Java + SWT now). I found to be a real PITA. However once you get the hang of it. It starts to make perfect sense. You actually start to love it like a three legged dog.

One thing that I never could get working though was maintaining a native windowing look when a user had a custom theme installed on windows. 

Iv never used QT, but I'm guessing it's more mature, as Trolltech has had a bankroll and the opensource momentum of KDE. GTK+ might also be a good option.
Richard Corsale Send private email
Sunday, January 18, 2009
I decided on QT for a new project, before the LGPL announcement - so I have been playing with the GPL version.  Cross platform isn't a requirement (yet) but I didn't want to use MFC anymore and I wasn't about to switch to C++/CLR just for winforms.

Building GPL QT on VS2008 is easy plus there are a couple of macros to make project integration simple.
On the whole I like the signal/slot mechanism, I use STL rather than QT types where possible.

I used wxPython extensively, I haven't really looked at PyQT in detail.

ps. The wx app had a reasonably complex gui but the value was on the backend!
Martin Send private email
Monday, January 19, 2009
I used wxWidgets for a couple of projects and was disappointed, the code is all old style C++, too many macros and poor error handling.
Tony Edgecombe Send private email
Monday, January 19, 2009
The point of an opensource licence is to let the user be able to fix/change things.  Thats why the GPL requires the user to be given the source - it's not so the author can't make money it's so the user can fix things on their own computer.

The LGPL allows you to use somebody else's library for free without sharing any of your own work - the only proviso is that you allow the user to switch the version of the library you supply to one they want (to fix a bug or add features).
wxWigets allows you to optionally statically link the lib - this makes some things easier for the author but means that the user cannot fix/change some things themself.

Note that QT is also available under a commercial licence - if you want to pay for it you can statically link it.
Martin Send private email
Monday, January 19, 2009
> That's it?  The Qt folks won't allow you t static link?  That is just silly!

> Yea, yea, yea, I know it is theirs to do with as they like.  I am just tired of this sort-of-open-source thing.  Lets have REAL TRUE OSS!

No. The Qt folks are more than eager to walk you through the porcess of statically linking.

The problem is that while you're squealing about the beauty of "REAL TRUE OSS" the only legitimate barrier between you and static linking is your refusal to release your own software as "REAL TRUE OSS" and instead demanding that people give you code for free and also pay you for the right to use your own product.

Let's have some "REAL TRUE RESPECT" for the work of other people, before bitching that they won't give it to you for free?  No?

Monday, January 19, 2009
Um, the LGPL allows static linking, as long as the end user has (or has access to) the files needed to modify the LGPL portion and relink.  So if you deploy YourApp.exe along with and YourApp.obj, you're fine.  See LGPL section 6.
Kevin Send private email
Tuesday, January 20, 2009
Keeping in mind LGPL's clauses, this could be a really great thing.

As long as the commercial interests behind TT's Qt continue to fund development, it would be quite interesting to see how much more of an impact Qt will have on mISVs given its current maturity. Say you've always admire X software that's worth $65,000 a seat and it was written against Qt: and you've got a great idea for it, a plug-in that you want to charge $250 for but you are worried you wouldn't sell more than 50 seats--now you can throw hesitation to the wind and just write it--without worrying as much about the footing the bill for the licensing for commercial development.

Bear in mind that you should get support some how. You could make a point of hiring qualified developers who are familiar with the framework, just knock on the doors at #qt or #wxwidgets at Freenode IRC Network--get a quote. They are often available for hourly rates or perhaps longer durations and last I checked they've been more than reasonable with rates. If that's what you need for front-line, great! If not, then make sure you talk to TT and hook yourself up with some proper commercial support. Or love the product so much that you become the inhouse expert. Your choice.

As long as 64-bit everything is in there, and ease remain when it comes to supporting the same 32-bit code base on reasonably older machines--what's not to love? Hopefully LGPL is sustainable.

Last I chatted with #qt, there were some impressive third party libraries that started off being GPL but got hamstrung when they wanted to start charging for the libraries (due to the older You-must-license-first-before-even-starting-to-develop-or-it's-GPL-for-good-set-up). And this is stuff happening to the most rabid of Qt fans--so there's some bad water that hopefully get cleared up by this. If these fans are now happy, and more people decide they can also join the Qt component writing band-wagon--then TT evangelism would actually be working for once.
Li-fan Chen Send private email
Friday, January 23, 2009

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz