Hacker News new | ask | show | jobs
by nyellin 5605 days ago
I would not call Gtk+ a "huge technical debt", but there is some truth in what you say.

Gtk+ development has been badly under-sponsored by the companies that sponsor GNOME development. In recent years, Cairo and then Clutter were the hot new toolkits that many people used to supplement Gtk. (Clutter provides a 2.5D canvas that can be used in Gtk+ applications and Cairo is used by Gtk+ to draw widgets.)

Qt, on the other hand, is backed by Nokia and has been undergoing constant development. The difference is noticeable.

There was a time when people spoke excitedly about creating new GNOME applications using Clutter, because Gtk+ itself didn't support what they wanted to do. Clutter was (and still is) blessed by GNOME. Among other programs, many GNOME games have been rewritten to use Clutter with a small Gtk+ wrapper.

I am no longer involved in GNOME, so I can't say for sure how people feel right now. I would guess that the attitude is what it has always has been: Gtk+ might not be amazing, but it is good enough for what we need. Use Clutter if you need a canvas. It would be insane to switch to another toolkit, as that would kill the GNOME project.

Edit: I want to add a few points I forgot to mention:

1. Gtk+ 3.0's support for CSS theming will level the playing field with other toolkits, and especially with Qt. This is the most exciting addition to Gtk+ 3.0. To be honest, it is long due.

2. Qt is my personal choice for a cross platform toolkit in high-level languages. Qt Designer, QLayouts, and Qt's language bindings are very good, and have all been present for years. Gtk+ has good language bindings, but it is lacking in all of the other areas. Furthermore, Qt's last few releases bring many new features that Gtk+ is missing and wont implement soon.

3. Despite my preference for Qt, I still use Gtk+ for small small C programs because Qt is written in C++. Gtk+ isn't as fun as Qt, but being forced to use C++ is plain out painful.

2 comments

The release announcement says that Gtk3 has switched to Cairo to draw the toolkit behind the scenes:

Cairo drawing throughout. GDK no longer wraps the antiquated X11 drawing API; we've made a clean break and exclusively rely on cairo for all our drawing needs now.

As for Clutter, the OpenGL based canvas, Gnome-Shell (aka the Gnome 3 desktop UI) uses cluttter throughout. The new window manager is called Mutter which is a fork of Metacity to use Clutter for hardware acceleration and all the panels and other desktop UI are also rendered this way.

"Gtk+ isn't as fun as Qt, but being forced to use C++ is plain out painful."

just curious, have you considered qt jambi (now open source) or qt4dotnet?

Yes, I used QtJambi for a large project in the past. (I was including Java when I said that I prefer Qt for high-level languages.)

QtJambi is great, but I do not know if I would use it for a new project. Since Qt 4.5, QtJambi is no longer supported by Nokia.

Source: http://qt.nokia.com/about/news/preview-of-final-qt-jambi-rel...