Evolution on Windows : The Cross Platform Holy Grail

Nat Friedman announced that Tor Lillqvist, of GTK+ on Windows fame, has joined Novell and will soon be working on a port of Evolution to Windows!!

I am not particularly excited at the thought of using Evolution (I prefer Thunderbird) but I am excited because the effort that will be put into the porting will certainly help the GTK port itself, a lot. It means I can seriously consider writing a cross-platform software now.

I’ve been contemplating learning wxWidgets (and wxPython in particular) but I find it to be a moving target most of the time,  it’s not stable and I heard the cross-platform feature of wxPython is not really that great. I have detailed this in my post on the byte-of-python mailing list. I really like Qt but, through experience, being able to write cross-platform apps sometimes really does matter.

What experience, you ask? I once wrote a software called Diamond which was a medical laboratory management software. I toiled on it for several months and wrote about 13,000 lines of code for it. It was also my first big GUI project. All the features were great, there were few rough edges but it was reasonably acceptable, it’s only failure was that it didn’t run on Windows. Why? Because I had written it in Qt and I couldn’t afford the Qt licensing fee just for this project. I wasn’t able to convince the doctors to switch to Linux just to use this software. Plus, they used special hardware to scan images (of the patient) and needless to say, they require special device drivers which I am pretty sure wouldn’t be available on Linux.

Also, when I write a GUI chapter in my book, I want to steer clear of licensing issues as much as possible – its simply too confusing for newbies.

This brings me to another irony: Qt is under GPL and GTK is under LGPL, even though GTK is part of the GNU hierarchy who created and promote the GPL. Yet, the LGPL is the only advantage I see that Gtk has over Qt. I see every other advantage in Qt – powerful, simple, lots of useful widgets (the database widgets are really terrific), excellent documentation, C++, no need to worry about freeing memory (Qt takes care of it), upcoming Qt 4 has lots of goodies in it, …. and yet I’m back to square one.

I’ve even looked at wx.NET but I was just not comfortable with it – it looked more like ‘wxWidgets – the latest edition without pointers’ to me.

One good thing abou GTK is the look and feel – it feels nice and polished, sometimes I see the Firefox -> About menu just to click on the dandy ‘Ok’ button.

One bad thing is the new GtkFileChooser, it gets in my way every time – especially if I click on an attachment in my mail and want to change the ‘Open With’ program to something else, I browse to ‘/usr/bin’ and then it hangs since it is trying to list the 2674 files in that directory in the window….  I tried to use the autocompletion in the editing mode that pops up whenever you try to enter text in that dialog but it is completely unnatural for me to use it since the damn thing autocompletes it even before I press a tab! Sigh…. I usually directly enter ‘/usr/bin/kwrite’ in a KDE Open Window.

So for now, I will use KDE and probably will write Gtk apps (i.e. whenever I need to write GUI programs).

Note : I wanted to point to the screenshots of Diamond but my g2swaroop.net domain is down at the moment. I’ll update this post when it comes back online (hopefully in a few days)

P.S. I am trying hard not to make this post a flame bait.