I sent the following message to Nicholas Petreley on my
thoughts on GNOME:
If you're interested, these are the things that attracted me
1 - Try to do it the right way first. KDE seems to try to
get it done
first, and then make it the right way later. This makes
earlier, but I imagine you will start to see GNOME expand in
that KDE can't when it gets to that point. It's kind of
like Linux -
start with a sound, if perhaps rough, base, and expand from
2 - Non-GUI cooperation. Many of the pieces of GNOME can be
non-GUI applications. GLIB, ORBit2, even pieces of Bonobo are
fundamentally separated from their GUI parts. This is
good library design, and also increases the utility of the
developers, since the skills are not bound to GUI-based
3 - CORBA. This is an instance of #1. CORBA is an
platform for distributed object communications. It is also
Those who claim so have probably not tried. It takes all of
two hours to
learn the basics, and everything comes easily after that.
4 - libglade. This is one kick-butt feature. It allows
to be loaded from XML files. This allows nondevelopers to
interface issues. GLADE has not matured to the point where
this is really
useful, but it has wonderful potential.
5 - Ultra-customizability - I haven't used KDE in a while,
so it might
have gained on GNOME in this, but the configurability is
ability to have multiple panes going every which way is
great. The only
thing that I miss is KDE's ability to do Mac-like menus :(
6 - Use of the actual language. QT depends on that horrid
MOC to compile
C++. If C++ wasn't a horrid enough language already, they
had to go and
put a preprocessor on it. Makes me want to run away screaming.
Of course, GNOME has a few things that drive me buggy -
1 - Bonobo. Many parts of Bonobo are well-written.
However, there are
many parts that are taken from Microsoft (like GUIDs) that
stupid. Interfaces should be identified with text strings
vendor-strings. Also, it appears that they implemented argument
marshalling on top of CORBA, which already does marshalling.
They do this
to avoid making the poor developer learn CORBA, which is a
Keeping developers stupid is not a good goal. Also, they
service for finding servers, when there is already a well
trading service for this purpose. Ugh. They seem to
CORBA architecture in several places.
2 - GLADE. This could be an excellent tool. It only takes
feature to make it great. That is to add a few hooks for minor
source-code generation. Specifically, for the Python side,
to allow it to
auto-create Python classes that will create new widgets on
and also have skeleton methods for any signal handlers that
This would make programming this environment stupidly easy.
3 - An immersive book on application development. Most
ignore the issues that make GNOME programming more than just
programming. Things like integrating Bonobo, Session
Accessibility, Gnome-VFS integration, Nautilus integration,
configuration, sound, i18n, and scrollkeeper. Basically,
taking an app
and adding each piece. It doesn't need to go in-depth, but
just show how
each one works togehter. Unfortunately, the "mother tome"
(GGAD) seems to
want to delve into the murky depths of GDK - for which I
don't have the
faintest clue why an application developer would care.
Anyway, this one
item would help developers out immensely. It needs to
developer in how development is done, not go in depth on any
That's what API references are for.
Anyway, that's my 2c