This article is aimed at Unix developers who already have some experience with programming languages and want to start developing GUI applications. It may also come in handy if you have used a particular GUI toolkit for some time and want to know whether others might suit your needs better.
I’ve tried several of the toolkits outlined in the article. I think my favorite is still wxWindows (or wxPython depending on what I coding in).
Although it’s not the only reason I like this toolkit, one of the things I really appreciated about wxWindows when I looked at it initially was the documentation. I found it very straight forward and useful. I find the API itself to be of equal quality too.
Of all of them the only one I haven’t used is wxWindows.
At work we use Qt and honestly, although it’s okay I don’t think it’s worth the huge amount of money it takes to license it, considering that Fox is just about as good. That and SCO and their holding group has invested non trivially in Troll Tech (yuk, yuk and triple yuk). Qt shows its age, it’s got a lot of stupid stuff in it that they have to maintain for compatability (layouts don’t always work as anticipated, a lot of the add on modules are hack jobs with inconsistent api, etc…). Also it suffers from trying to do everything.
I’ve shied away from wxWindows because I don’t like wrappers, when I did look at it it seemed horribly horribly bloated. Of course that was over 5 years ago.
fltk was okay, except it requires you to pixel position your widgets. I don’t recall there being any layout managers. I’m getting to old to do pixel layout stuff.
Fox seems to be the most promsing, but the guy who wrote it definitely has a bias against C++ and towards objective C for gui design stuff. Passing around void* pointers in C++ is plain gross. An associate of mine actually very trivially replaced the Fox callbackx with a functor mechanism without having to patch the original libraries. Also I believe lack of internationalization is missing feature.
Trolltech is not that bad in litigation regard. ‘The Canopy Group’ (SCO’s parent) only owns 7% of Trolltech. 70% of Trolltech is owned by its employees.
Quote (Brian):
“fltk was okay, except it requires you to pixel position your widgets. I don’t recall there being any layout managers. I’m getting to old to do pixel layout stuff.”
On the contrary, FLTK includes a widget layout app, called FLUID.
I love FLTK. It truly lives up to its name. So where is the FLTK DE? I have been to the Equinox Desktop Environment site, but large parts of the DE that must be installed are sorely out of date. Unfortunately, those parts that are out of date, do not seem to compile from source.
Can anyone help? I want my FLTK DE!!!
Maybe Eugenia can review it for us???
Didn’t they just provide snapshot for 24th. July 2003? I managed to DL the ede package but there are something wrong with their efltk package which didn’t DL very well. At the end I cannot compile the ede package which I think due to the old efltk that I used. Anyone manage to compile this?
via some guys that made a C++ extension called Connective C++
Kinda interesting, but it seems stillborn. The website is dead now too (redirects to some other site)
after that, fltk really impressed me, but I don’t even code in C++ anymore (since i have OS X and use ObjC)
I would like to see a comparison of Gnustep to those Toolkits mentioned in the article. I only briefly looked at Gnustep, but it seems where promising. As soon as they have ported WebCore and have a decent browser for gnustep (preferably based on khtml) I will go with gnustep as my desktop.
Regarding Qt, I don’t understand why people are complaining that it is licensed under GPL. I thought the FSF thinks that GPL is better than LGPL because it guarantees that all derrived work stays free. I don’t have any problem if someone building a properitery app has to pay for the toolkit.
Yes its great that QT is Free Software, but Trolltech decline to support anyother platforms than *nix, Open Source Software isnt Linux only, Windows has its fair share of OSS applications. Hell, Debian/Win32 exists!. Re-read my comments on FM, because obviously you havent understood it.
Trolltech is a Canopy Group company. Ralph J. Yarro sits on the board of directors. Canopy Group is the organization behind SCO’s attack on Linux.
He lists this as one of Qt’s weakness:
– Commercial developers and people wanting portability have to pay.
Oh no!!! Someone put in time and effort into a *good* product. How *DARE* they expect to be compensated.
Filthy pinko.
>>Oh no!!! Someone put in time and effort into a *good* product. How *DARE* they expect to be compensated. <<
Qt is awfully expensive. Also, Canopy companies just loves to sue their customeres. Using Qt may cost you much more than you thought.
Qt is awfully expensive.
Awfully expensive, meaning more than *free*? Pay-for cross-platform widget toolkits are nothing new. Remember Motif? Remember, in commercial companies, developers don’t work for free, if you can get your product to market even a month faster, you’ve probably already paid for Qt.
Also, Canopy companies just loves to sue their customeres. Using Qt may cost you much more than you thought.
Yes, that 7% interest in TrollTech should be enough to turn them into another SCO.
Besides, what could they sue their customers for? Honestly? Unless their commercial license is reeeeeeeeally f*cked up I doubt there’s much to sue over.
walterbyrd: JohnGalt was writing about one specific criticism. Bringing up another, completely unrelated one, is just a non sequitur.
Also, Canopy has a 5-7% share of TT. Also the board of directors has how many, 12 members? Canopy is a (very) minor player in it, who bought the stock before the current brouhaha took place. How was TT going to know they would go crazy later?
The controlling stockholders are TT’s employees. Who also happen to be mostly TT’s developers.
> On the contrary, FLTK includes a widget layout app, called FLUID.
This is totally different from using a code based layout manager. Maybe I’m old school, but in general I don’t like to use layout apps because they add an extra layer of complexity to the code itself (in some cases yet another language to learn) and generally hurts its maintainability because of all the trash auto generated code. It’s much easier to do an initial gui with a layout app, but when it comes to reworking part of it layout apps start to fail miserably.
Both Fox and Qt have good layout managers that aren’t pixel based. It’s very easy to quickly write clear, readable code that I can *easily fiddle with*. I have more than a few associates who dropped fltk for fox just for that reason.
Qt’s product, for what it does is *NOT* expensive. Consider how much time went into developing the toolkit, all the OSs it supports, documentation, support and etc. Now take into consideration how much your time is worth and how much time you save by not having to maintain your own toolkit, instead being able to focus on the money-maker projects. That $2300 is an absolute steal!
This argument is, ofcourse, irrelevant within the context of 90% of the “Open Source” programmers, who are usualy complete fuckwits whose time is worth exactly $0.
I think the main point the author was trying to get at was the fact that there were other toolkits out there that did as much as Qt did, and were free. So there isn’t any real reason to use Qt. Also, check out the cost of their license. Just look at their pricing scheme. If I want to develop professionally for 1 platform, I need to pay $1550 for the professional license. If I want to develop for mac/X11/Windows I need $3100!!
Maybe you don’t feel that is a lot of money, but for hobbyist programmers or OSS programmers, that’s a fortune. Even Borland’s Kylix doesn’t cost that much, and I get to write Linux and Windows apps in one good RAD package. Qt is only free for developing free applications. If you want to develop commercial applications, you’ll have to pay their exhorbitant license fee. Incidently, even MS Visual Studio.NET doesn’t cost as much as a single license for Qt.
So for me, its FLTK all the way. I like its minimalistic approach. Been looking into wxWindows and it looks like a nice toolkit too (rather similar to MFC, which I’m quite familiar with).
Wee Jin Goh:
No, there is not another toolkit that does all Qt does and is free.
GTK+ doesn’t do all Qt does, WxWindows doesn’t do all Qt does.
Honestly: having worked extensively with Qt and some (not much, lucky me) with Wx, I must say that anyone saying Wx has all Qt has is ignorant.
And the thing Wx lacks most, compared to Qt, is ease of programming.
“If I want to develop for mac/X11/Windows I need $3100!!”
Yep, and you don’t even get a compiler with that. So figure you are going to spend several hundred dollars more if you want to develop for Windows, and probably Mac as well. (They can keep the Windows port of GCC.)
Maybe you don’t feel that is a lot of money, but for hobbyist programmers or OSS programmers, that’s a fortune. Even Borland’s Kylix doesn’t cost that much, and I get to write Linux and Windows apps in one good RAD package. Qt is only free for developing free applications. If you want to develop commercial applications, you’ll have to pay their exhorbitant license fee. Incidently, even MS Visual Studio.NET doesn’t cost as much as a single license for Qt.
You are contradicting yourself here. A hobbiest or OSS programmer is not writing commercial software. The terms of their “free” license also lets you write commercial software, you just have to open source that software. I find those terms very reasonable. So in essence, Qt costs nothing for hobbiest writing simple apps for themselves, programmers who want to write “free” open source software, or companies who are writing commercial software but also distribute that software in source form in the open source world. I’d say that’s mighty fair of them.
I’d say that’s mighty fair of them.
Especially considering Visual Studio, Borland, and almost all others don;t have that kind of deal, or anything remotely like it. Of course, they did that all basically just so KDE, Qt’s killer app, could live on. OS X’s dev tools, OTOH, are free to download (if u get a free developer account) and leaves the developer free to write either free or commercial software.
“A hobbiest or OSS programmer is not writing commercial software. The terms of their “free” license also lets you write commercial software, you just have to open source that software.”
You have to do more than open source the software. You have to GPL it. And commercial GPL software is an oxymoron. As soon as it is GPL, it is fair game for anyone to do whatever they want with it provided they leave it GPL. So if they want, they can basically burn a million copies and resell the. So much for commercial software.
And as far as the free license, once again, it only works if you want to do X11 applications. There are no free versions of Qt available for Windows or Mac.
Simba: There is a GPLd version for OS/X
And at least on X11, you can also use other licenses, such as the QPL, for your code (really, almost any OSS-approved license will do)
What you can’t do is sell closed-source programs and not pay Qt.
For those that don’t take the time to look:
Qt/Mac Free Edition
http://www.trolltech.com/download/qt/mac.html
Qt/Windows Non-Commercial Edition
http://www.trolltech.com/download/qt/noncomm.html
If you don’t make any money off your software, they don’t want anything from you. If you do, they want to be compensated for their efforts–just like you are.
“And at least on X11, you can also use other licenses, such as the QPL, for your code (really, almost any OSS-approved license will do)”
That’s not correct. Because the free version is licensed under the GPL and NOT the LGPL. So you must license any software you develop with the free version of QT under the GPL. Anything else would be a violation of the GPL license. If Trolltech is claiming otherwise, then they themselves are in violation of the GPL.
two problems (windows version):
* is quite outdated
* “requires Microsoft Visual Studio v6”
I think that this version is more or less dead, because it does not work with VC7. In spite of that, it just needs a few minutes to fix some of the Qt headers to get it running. So if anyone at TT would still care about this probject…
There is no contradiction there. Hobbyist do write commercial software the is sold. Perhaps in these times, the shareware programmers are nearly extinct, but they do exist. Hobbyist do write software that is of good quality that can be sold. Take for instance lcc-win32 ( http://www.cs.virginia.edu/~lcc-win32 ), which is written by Jacob Navia in his spare time. It is commercial in the sense that he sells licenses, and it makes him some money aside from his full time job. But he’s never going to be able to afford $1550 for one license, or $3100 for licenses to 3 platforms.
Roberto:
So I’m ignorant of the differences. Please enlighten me as to what killer feature that Qt has that justifies its high price? What does Qt have that the other toolkits do not have?
The main advantage of wxWindows is that it has a slight resemblance to MFC, which many migrating Windows programmers (myself included) are more familiar with. In fact it is better than MFC in that it is cleaner and doesn’t force the Doc/View architecture down your throat. The point is, ease of use is pretty subjective.
I’m honestly keen to know what wxWindows lacks that Qt has? I’m really interested to know if it justifies the $1550 that is costs.
I’ve tried Qt, GTK+, and wxWindows, and I must say, wxWindows seemed to the be easiest to pick up. Good number of bindings, great documentation, easy syntax – hard to beat that.
I’m also curious as to what wxWindows doesn’t have that Qt does, because when I checked a few months ago, wxWindows seemed awfully complete.
For commercial, cross-platform work, it just cannot be beat, either. It’s not “is QT better?”, it’s “is QT $1500 better?” You’d have a very hard time convincing me of that from what I’ve seen.
-Erwos
OK, those of you who say QT is expensive have obviously never done any real work. The cost of the license is _nothing_ compared to the cost of programmers. If using QT/whatever saves some time it is _well_ worth the cost, OK? Re-read until you understand it and then repeat after me: in real world (where programmers cost money) TIME IS MONEY.
I made my first GTK+ program the other day. Glade makes it really easy, IMO. I am a fairly decent C programmer but found programming GUI by hand to be tedious (widget layouts, signals connecting, and such). Glade handles all the nasty work for you and you simply fill in the call-back functions for whatever widget signals you wanted to handle.
My program was GTK 1.2; there is a newer version of Glade for GTK2 which might be even nicer.
OK, those of you who say QT is expensive have obviously never done any real work. The cost of the license is _nothing_ compared to the cost of programmers. If using QT/whatever saves some time it is _well_ worth the cost, OK? Re-read until you understand it and then repeat after me: in real world (where programmers cost money) TIME IS MONEY.
And why would I want to learn Qt if I don’t already know it? Would it make me more productive? What features does it have that other toolkits don’t? You have not added anything constructive to the discussion.
In addition to X11 under Linux and Solaris, works with Win32 and OSX too.
Is Free as in beer. Free as in Marxism, another story for the GPL zealots.
Because the free version is licensed under the GPL and NOT the LGPL.
Qt/X11 It is licensed under three licenses. commercial, QPL and GPL.
If you accept the terms of the QPL you can use almost any OSI approved license for your software.
I’m honestly keen to know what wxWindows lacks that Qt has?
I am not into wxWindows development but from a quick look I took some months ago it didn’t have a style engine or any simple way to change the appearence of widgets.
A question aside, is there any goo tutorial on how to use the signal/slot mechanism of wxWindows? All the docs still cover the outdated event macro table usage.
Well wxWindows doesn’t need a style engine, because it wraps native widgets. A wxGTK app on RedHat will have the Bluecurve look by default. Which is exactly how it should be.
“Qt/X11 It is licensed under three licenses. commercial, QPL and GPL. If you accept the terms of the QPL you can use almost any OSI approved license for your software.”
This sounds shakey to me, and I wonder if the GPL would trump in court.
Example. Someone provides me with with an app licensed under the QPL, but I decide I don’t like the the terms of the QPL license. I can argue that their app is required to be GPL because it is linked with code that has been GPLed. I don’t see how the same code can be licensed under multiple licenses when the GPL is involved.
Well, this limits the appearence to the toolkit wxWindows is implemented on.
If a customer wants a specifiy appearance on any or all platforms you would have to reimplement wxWindows on all platforms which require this looks.
With Qt you just to a QWidgetStyle and link it inot your application on all platforms. It will always conform to the customers guidelines.
Important if your customer wants to move to multiplatform or a new platform without confusing the employees.
This is very common.
MySQL is also dual licensed, GPL and commerical.
Multilicensing is not forbidden by the terms of the GPL.
The author has any right to apply which ever license she wants to.
I can argue that their app is required to be GPL because it is linked with code that has been GPLed
They might have linked it with a QPL licensed Qt when developing, or even the commercial Qt license.