Saturday, February 20, 2010

GTK+ no longer supports Windows, apparently

When writing computer programs, I try to ensure that they are portable enough to run on as many different platforms as possible without modifying the source code. This becomes tricky when I'm writing in C and I want to provide a vaguely-modern-feeling user interface. Since about 2006, I've relied on GTK+, the basis of the GNOME desktop environment, as my GUI library of choice. A good example of a piece of GTK+-based software for which I'm a member of the development team is the gEDA project, a collection of tools for electronics design.

One of the attractions of GTK+ for me has always been its ability to be used on both X Window System-based operating systems (e.g. Linux and BSD) and on Microsoft Windows. Unfortunately, it seems that Windows support has now been discontinued.

Back in September, GTK+ 2.18 was released. Unfortunately, it contained a large regression which has caused some headaches for people working with GTK+ on the Windows platform (essentially, GTK+ applications would be completely unusable in some cases). Furthermore, a rewrite of some core GTK+ code inbetween 2.16 and 2.18 left the GTK+ on Windows infested with a host of other minor but annoying bugs.

Now, what normally happens when an Open Source program upon which literally thousands of applications and millions of users depend has a major stable release containing a large regression on one of the major supported platforms? Well, in most such cases, the software's developers figure out a workaround as quickly as possible and make sure that those affected know about it, and then make haste to track down the source of the bug, fix it, test the fix, and issue a point release or set of patches with which their users can obtain a working version.

Apparently not so in the case of GTK+. Four months later, GTK+ 2.18.x is still pretty much unusable on Windows, and the general consensus is to use 2.16.x. Dominic Lachowicz, a GTK+ developer, has is still warning people not to use 2.18.x on Windows:

Look before you leap. GTK 2.18 on Windows is very buggy.

The attitude of the maintainer of the Windows port, Tor Lillqvist, has been quite alarming. In comments on the GNOME bugtracker, he gave no impression of any intention of resolving the issues himself, saying:

You want ot use some new API present only in 2.18? Please then consider helping in actually debugging and fixing the problems in GTK+ 2.18 on Windows.

... perhaps you should just use the version of software as it was before the "introduction" of the bug? I mean, nobody promised you there would be any updates of Windows-specific functionality, or otherwise, in GTK+, right? So just use GTK+ as it was before "somebody broke it".

It's becoming distressingly clear that there is no-one in the current GTK+ development team with any particular commitment to keeping the Windows support in working order. Furthermore, it seems clear to me that the hostile and confrontational attitude of people like Tor will tend to drive away any new developers interested in taking the work on. It's already hard enough to get patches into GTK+ as it is -- even complete and tested patches tend to hang around in the GNOME bugtracker for weeks or months before being dealt with.

Going forward, I think that I'll need to find an alternative set of libraries that I can use for cross-platform GUI programming and get a well-integrated 'look and feel' with. The Qt toolkit has a good reputation for documentation and support, but doesn't seem to support applications written in C. Are there any other alternatives I've missed?

No comments: