During the GTK Hackfest in Berlin there was some discussion about how the future of GTK may look like, which provoked some blog posts.
And since reposting ones comments is cool, to point them out, here is what I think;
generally there is a consensus that GTK3 should mainly happen due to breaking API/ ABI, by throwing old and deprecated stuff away and allowing cleaning up the code.
I think that if we start cleaning up the code, we have to touch most of it anyway - so we could also switch to another language.
I think being written in C is a major disadvantage of GTK - yes there are binding for any possible language, but that does not help you if you want to hack the core.
The problem is that although you get all the features of a modern programming language through GObject, the way of accessing them is still limited by the C Syntax.
Also some of the features had to be implemented quite hacky, because we are already to high in the stack and usually the compiler should do it for us, like type-checking which happens in GTK at runtime instead of compile time or the poor garbage collection which is only implemented as a reference counter.
Switching to a language like D would instantly move all of this into the compiler, while the code would be still callable from C ie. without even breaking API/ ABI.
Vala would be another alternative but that would require fixing GObject, since it only maps to it.
GTK 3.0
GTK 3.012. March 2008, 19:57
Anonymous 12. March 2008, 20:10
You don't really want to rewrite a 10+ KLOC part of GTK+ like GtkTreeView and friends...
MadMan2k 13. March 2008, 22:14
the cool thing about D and Vala is that they maintain the C ABI - so you can begin with only writing new code in the new language and progressively replace the C code.