I've begun fiddling around with an idea I had bouncing around in my head for some time now... It'll be my personal geek project for the next few months I think. I'll post some more info up here when I actually have something to show. I'd say give me until March or so. Curious as to what it is about? Well, let's say it's to do with "ambient" interfaces. The reason why I have quotes around the word "ambient" is cuz it's not truly ambient in the sense of having a physical object or other environmental ambience invovled. It involves converting the more mundane or downright annoying software UI into the realm of software-based ambience.... hope that makes sense... ^^;;


0 comment(s) | link to this entry | edit this entry

So while trying to get back to a computer graphics related project back at work I thought I'd scope out the water and see how much has happened since I last surveyed the scene for "toolkits" that help UI development. I fiddled around with wxPython which is based on wxWindows and ended up developing 3 applications based on it. One was a port of a very simple win32 dialogue-box tool I had written at work, another one was a rather involved browser-clone that browsed something other than websites, and the other was Clipster.

Lemme just say that the API is ok. A minor gripe I had was that it reaked too much of the underlying C/C++ code base, and I didn't like the fact that I had to jump through hoops like that when I'm under python... I suppose it's a trade off between depending on an automatic wrapper generating tool and actually coming up with an API that makes sense to the language in question which also requires writing a whole new set of docmentations, etc.. So like I said, it's a minor gripe. What really turned me away was the fact that it reaked too much of MFC. MFC, for those of you who know me, is a prime example of how a GUI toolkit should never be designed like. A kitchen sink that yields one massive library that makes you haul around unneccessary code. If you think MFC is good, then you probably don't need to be convinced otherwise... People who don't like MFC usually didn't have to be convinced not to like it. Actually, it's worse than MFC when it comes to the footprint it generates and in terms of resource usage. Perhaps it's the cross-platform nature of the library or the fact that wrapping C++ code for Python tends to cause quite a bloat.

Now you're going to point at the picture of the Moore's law graph and say I'm just too old skool. So I understand why the trade off was made. I'm just probably not going to use it again. Don't get me wrong, if you just accept that the trade off was made and move on, then you'll be a happy wxPython developer. It certainly has, by far, the most complete set of features and has a realtively low learning curve. I wouldn't totally depend on the cross-platform nature of the wxPython distribution, however, since I couldn't get any of my apps to run on the Mac.

Without describing how I would have designed the UI and the underlying graphics layers (since it'll take pages and I will write a paper on it later for ya'll to read), there has certainly been a decent set of toolkits that garnered support from geeks who were turned away from MFC and similiar endeavors. WTL comes to mind for people writing windows specific UI who wants the windows "native" look and feel. The lack of interdependencies as well as the lack of MFC-like application framework was really a breath of fresh air for me. Couple years back when cross-platform wasn't a huge deal for me WTL was my choice of GUI toolkit for windows. Now that Microsoft has moved onto the ways of the .NET, people will probably just follow the trend and develop GUIs the .NET way... I can't comment on that since I have no expreience developing GUIs in .NET, but you can still get WTL here ;). Apple fanatics that know the type of architecture I'm after have told me I should look into Quartz and Cocoa which I will pretty soon. Another toolkit that I'm playing around with these days is FlTk which just might end up being my short-term toolkit of choice for cross-platform development. Anyone else have some GUI toolkits that they want to defend?


0 comment(s) | link to this entry | edit this entry

Want some more? Dig in to the archive for past entries.