Why not CDE? or KDE? or GNUStep?

Because GNOME is better! Seriously though, each of these desktop systems have issues which encouraged us to start fresh with the GNOME project.

CDE is not Free Software, it isn't even close. Many people also find it lacking in features, performance and functionality.

At the time of GNOME's inception, KDE had serious licensing problems, which they are still trying to resolve. First, KDE is based on a library called Qt, which was originally non-free. However TrollTech's recent release of Qt version 2.0 uses the QPL, so it qualifies as Free Software. KDE Development releases are based on the QPL'ed versions of Qt.

The other issue is that originally, KDE programs were released under the GPL. The GPL was designed to encourage more GNU software, so it doesn't work well when linked to software under other licenses. This incompatibility doesn't prevent anyone from using KDE, but it does make it troublesome to distribute. For more details, you can read Debian's position on KDE. KDE is in the process of changing their licenses over to the Artistic license, which avoids the problem. However, changing licenses on a large project with many authors like KDE is a long and difficult process, so it will take them a while.

The GNOME people like the KDE people, and we consider this an unfortunate situation that is in the process of being fixed. Hopefully, this will cease to be an issue soon, and GNOME and KDE can compete friendlily on technical merit and design. This matter has been hashed out time and time again on the gnome-list mailing list. Asking this question on gnome-list is discouraged behavior. If you want to go somewhere and start a flame war on this topic, then please do it somewhere far far away where we don't have to listen to you.

There are significant design differences between KDE and GNOME. Top of the list is a difference in widget set. We find GTK+ to be nicer, more customizable, more friendly to development in various programming languages, and more flexible than Qt; others may disagree. In all, the projects are different enough so that both should be able to coexist and even collaborate.

GNUStep is another desktop environment that has a lot of good things going for it. One issue with GNUStep are that they are trying to reimplement the OpenStep desktop and API, with GNOME we'd rather develop something new and good rather than just redo something old, even something old and good. Also, just like Qt strongly pushes C++ on KDE developers, GNUStep strongly pushes Objective C on its developers. GNOME wants to remain language agnostic, and support development in whatever language you wish to use.