I remember this event quite vividly. I have no idea why I do remember it so well, but I think it involves me having been a fan of Owen for a long time and this being the first time I had a long discussion with him. Or it was the heat. Or maybe the high walls around the president’s palace in Istanbul.
it was in July of 2008 when a bunch of us were walking back to the tram from a long day at GUADEC. It was a few months after we had had the GTK hackfest in Berlin where people had discussed improving the toolkit situation of the aging GTK – at version 2.12 at that time. Owen, me and a few others were arguing 2 very different solutions to the problem. No consensus existed on which solution was best. Owen’s idea was to let GTK die. Keep it in maintenance mode and don’t do any updates. Instead, spend time on a new toolkit and do things the right way there. Of course, you would take the things from GTK that worked, but you’d be careful there to not repeat the bad mistakes. Others claimed it was a better idea to try and overhaul GTK, add the new capabilities people needed and try to get the behemoth moving again.
There was a lot of arguments on both sides. Starting over would attract new contributors, a large, mature and intertwined codebase would likely be less successful in doing that. Keeping the existing code would ensure a full-featured toolkit while a new toolkit would need to write lots of code to acquire the same features. New code can experiment with fundamentally different designs a lot easier than a large codebase. People would have a lot of assumptions about what something called “GTK” would do – both good and bad – while a new toolkit would be free from expectations. An open question was if developers would prefer a one-time pain when porting to a new toolkit over a need to work on incremental updates again and again.
Why am I writing about this now? It came back to my mind while thinking about the toolkit situation in GNOME 3. We have MX and we have GTK 3, so in a true open source way people tried both approaches. And it seems people were spot on with their arguments, all the advantages of one way over another that people had foreseen turned out right. So I think everybody I listened to that sunny day can rightfully claim to know a lot about toolkit development.
What people didn’t foresee back then and what I think had or will have some influence on how this all turns out are the changes outside of our realm of expertise. New tools – in particular the introduction of git – changed our workflow and what we consider hard or easy to do. A lot of new use cases came up, in particular from mobile devices. And of course the way people develop with toolkits changed, too.
So what solution will be the best one in the end? I suspect I can’t know. I’m biased.
3 comments ↓
I think overhauling GTK was a huge mistake. Don’t take me wrong, GTK3 is an improvement over GTK2 and people made great work on that. Yet we continue having a toolkit that isn’t as good as the one Apple ships on its desktop computers, nor do we have as good tools for developers as they have and most important of all, the applications people are doing with GTK are functionally and aesthetically sub-par compared to the Cocoa UI equivalents. You could grab one of the teams that does any of those beautiful applications for the Mac and they wouldn’t be able to do them with GTK. And in the mobile sphere things are even worse. The maemo folks tried hacking GTK to work on touch devices. It was a good effort but the end result was terrible. Application user interfaces on maemo are really, really bad.
I’d read that progress was being made towards integrating mx and ST. Has that been abandoned?
As a gtk app developer it is somewhat frustrating when one starts to see what the competition is capable of visually. We will probably be 5 years behind (at least).
It would be nice if compositing layers of widgets and animations were made much easier.
The risk as i see it at the moment is that projects are going to create their own homebrew solutions to give them something approximating the visually rich platform available on Mac.
It would be nice if the gtk developers made some announcements about the future of the toolkit as far as toplevel windows only, pairing gtk and clutter and providing a timeline. I think this would assuage many developers gagging at the bit for a visually rich gtk toolkit.
That said the improvements within gtk3 are great. Keep up the good work.