GNOME is not a window manager.
GNOME is an application framework that consists of libraries to assist in application development and a set of applications that use those libraries.
It seeks to provide:
An API for interapplication communications. This will represent a set of objects running via a CORBA Object Request Broker called ORBit.
This is crucial piece of the infrastructure, with which they intend to implement a component architecture to build "compound documents" not entirely unlike OpenDoc; without this, GNOME is merely a "pretty face," consuming memory and disk space for relatively little value.
This description strongly parallels that of CDE...
A distinctive of GNOME is that it intends to allow development of applications in a wide variety of languages. This is backed up by the The Alternative Languages in Gnome Matrix
Let's Make Unix Not Suck - by Miguel de Icarza
The thesis is that Unix "sucks" from four perspectives, and that GNOME is trying to address these issues.
There is little innovation
Printing gets griped about quite a lot, but while CUPS may someday be an answer, improvements to LPD have neither existed nor been deployed.
In those few cases where major Unix subsystems have been redesigned, the results have commonly been proprietary. Witness Display Postscript (DPS) .
There is little code reuse
Code largely isn't shared; the only "universal" component is GLIBC , and maybe Motif . GNOME provides a bunch of libraries to do things like parsing XML , displaying GUI stuff, managing various data structures, and such.
No policies
Which is fine if you're designing X as a display substrate, but which is not fine if you're building applications or GUIs to run atop X.
Unix filters are useful for customization, but are not used much in applications.
Some of the most major "popular" apps that run on Linux, namely SAMBA, Apache, Sendmail, inn, sshd, ftpd, distinctly do not use filters.
Applications using the Gtk GUI Toolkit that was initially created for development of the GIMP image processing system.
The use of a common GUI toolkit can provide more consistent "look and feel" for applications, as well as saving memory and disk space as the library can be shared between various Gtk applications.
It is, to an extent, a response to the KDE Project, which is another "desktop environment" with similar components and purposes.
gTask is an implementation of the progress bar simplification system that was proposed in an osnews article by Athanassios Floros. The intent of the project is to create an easy to use framework for application developers to communication the progress to certain long running events. Right now the system is capable of automatically displaying a per program window that tracks the status of the tasks the program is performing. Eventually task information will also be reported to a central daemon that would allow for tasks to be summarized and for users to search for older tasks (ie. find the file I downloaded 3 days ago).
Metaproject to coordinate development of productivity apps for GNOME. This includes:
GWP (wp)
GO (wp)
AbiWord
Gnumeric
Guppi (charting/graphing)
Genius (sci calc)
Dia
Electric Eyes
Gnome Help Browser
GIMP
A bunch of ex-Apple guys that are now working on applications for the GNOME Project.
Overflow is a GNOME application for "data flow-oriented" development. You connect nodes together visually to construct programs.
This tends to be useful for things like:
Audio/Signal processing
Speech recognition
Image processing
Neural nets