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.

8 thoughts on “Evolution on Windows : The Cross Platform Holy Grail

  1. This just shows up that how much we are obsessed with technology rather than using technology to create a solution which people want to use.

    I would recommend:
    Repeat After Me: I Am Not In The Software Business by Chrisopher Hawkins

    Geek Gauntlets by Eric Sink.

    After spending 4 years in IT, now I really know what Eric and Christopher mean. I am no longer a technology obssessed geek. I realized that it’s business which drives technology and not the other way round.

    Sorry if I sounded like an ass but I had to write this comment!

    P.S.: Can you install ‘subscribe to comments’ plugin?

  2. Hey JD,

    I agree with you that software is only a means to an end. Software by itself is meaningless, its the things we can achieve with it that makes it useful.

    However, I feel that being technology-obsessed is a good thing (of course, in moderation, as with everything else in life) – because we are constantly finding new ways to improve what software can do and deliver. For example, compare a command-line based cdrecord program and a k3b interface, which would be more useful? Because Qt and KDE came along because of technology-obsessed people, we had a GUI kit which allowed creation of such useful software.

    Regarding as to why I chose Qt for the project : it was the easiest, feature-rich toolkit with good documentation available at that time. It was a college project and needless to say we have very minimal time to do anything for a project. ‘Getting Things Done’ was our criteria.

    All things said, I **am** choosing Gtk over Qt now, simply because of the business side to the technology.

    And yeah, thanks for reminding me, I’ll install the [comments plugin][] as soon as I get time.

    [comments plugin]: http://wiki.wordpress.org/SubscribeToComments

  3. having crossed a million downloads some ten days back, wxPython has shown genuine acceptance and cross-platform performance. I have been using for nearly a year now on linux without a single segfault. I find the same stability in 2.5. I dont think it is fair to pass judgement on wxPython based on only *one* comment

  4. You can get anyone with a valid Qt license to compile your application if its GPL. Even before Trolls GPLed it. Subscribe to qt-interest mailing list, and request people there, they are generally quite friendly.

  5. Amit: I didn’t know about that before but its good to hear that. However, I don’t see it to be practical. What if I fixed a bug later? I cannot repeatedly ask someone else to re-compile everytime :)

Comments are closed.