GUI Tookits
Nov 5th, 2005 by Petre
There are a few toolkits out there, some better than other, I guess that depends on your specific requirements like cross-platform availability or native looking interfaces, however… there is no clear winner, each of them has issues… I’ll share my thoughts on 3 of the best. What I write here is from a python only programmer.
wxWidgets - this is the one I have most experience with via the wxPython bindings, it is bloated no doubt about it… a simple application that displays a window can reach something like 12 MB on windows with a packed for distribution size around 5 Mb… that is huge, I know we don’t live in prehistory, I know that Internet connection speeds are high and hard-disk space is cheap BUT I still cringe when I think of it. Not everybody has a broadband connection and some people do have outdated computers. Also… seeing serious refresh problems on my development machine (a 3 ghz P4) makes me wonder how bad could it get on slower machines. I know there are techniques to solve those refresh issues BUT flickering screens should not be a “feature” of the toolkit.
GTK - this might be a good toolkit on Linux platform BUT on Windows it is bad bad bad. a look at some GTK apps available for windows like Gimp or Inkscape is enough to descourage any wannabe developer. Looks weird, acts weird, slow and rather unsupported, it needs a lot of love on windows.
QT - This looks like a great toolkit but has one huge flaw IMHO: it is unfair, it cuts out the developers from not so developed countries. Let me explain this, I live in Romania, here my salary of 500 EUR a month is considered huge, I put in at work something around 55-60 hours a week and I program for fun or for small projects. If I am to use QT to make some money I don’t expect to make too much, people hiring me for certain programming jobs will not pay me 40 USD/hour rates but rather something like 10-15 because this is the reality, I live in a poor country, they want cheap labor and even 10 USD beats 2-3 USD I get right now from my current job. They know this and if I don’t like it… well… there is always another Romanian, or Russian or Indian that will like it. How am I supposed to pay Trolltech the fee for QT? For me the licence for the toolkit is like the price you would pay… only multiplied by a factor of 4. So… 3180 EUR per developer per year? That’s not fair. It cuts out small development and only leaves it as an option for big companies with big, money making products.
There are some other toolkits out there like FLTK, FOX but… it seams that if they are obscure, their python bindings are even more so. Maybe some hope will arise from SWT but I’m not holding my breath.
The way I see it, the best way out of this situation is to start over. Scrap code from all the projects that allows it and build something new. Build something geared from the start toward the high level languages. Write as much as you can in high level language and only fall back to C/C++ only when you really really need to. Such a toolkit could cater languages like Python Ruby or Lua and lower the bar for GUI programming.