display | more...

GNOME, GNU Network Object Model Environment.

GNOME (http://www.gnome.org/) is a desktop environment for UNIXes, developed as a community effort like most of the GNU things. Basically, X Windowing System provides raw support for graphics and doesn't give much more - so you need tools to do actual work. GNOME helps with this.

GNOME is, as noted before, developed by the community of volunteers. GNOME also has corporate backing: Ximian builds GNOME and applications for it full-day, Linux vendors like Red Hat provide great support, and some parties like Sun Microsystems have helped things a great deal (I particularly admire them for the usability testing).

From User Perspective

GNOME consists of code libraries (everything from very fundamental code to full-blown services and daemons), basic things like application launcher (GNOME Panel), file manager (gmc and more recently Nautilus) and window manager (Sawfish), small utilities (GNOME Terminal, gcolorsel, gcharmap, GNOME Mixer etc...), and, of course, full-blown applications (GnuCash, Sodipodi, Gnumeric, Evolution, and many, many more).

What makes GNOME interesting that it doesn't actually demand that you use a specific window manager (though using "GNOME/KDE-compliant window manager" is highly suggested). Nor does it actually demand that you use some specific part of infrastructure. If you don't like Sawfish, fine - don't use it. (I don't - I use Window Maker). If you don't like GNOME's session management, fine, don't use it (I don't - I use Window Maker's SM). If you don't like gmc and don't have the horsepower to run Nautilus, don't. (I used gentoo until Nautilus one-point-ohed, but since I don't my mother's computer can't run Nautilus, I use gmc or gentoo there.)

From Developer's Viewpoint

GNOME uses GTK+ as its GUI toolkit and extends it a great deal by introducing new widgets. (One of the reasons for GNOME's existence was that in the ancient days of history, the Heathens who developed KDE picked a non-free toolkit, the satanic Qt! Nowadays Qt is GPLed, but there's still some bitterness in air... =)

GNOME applications typically use GNU Autotools for the build management.

New widgets include dialogs and applications, status bars and menus with stock items, MDI support (that lets the user to use something other than Windows-style MDI, thank God!) and such.

Some of the thing GNOME implements includes cool graphics support. Of particularly high interest is the Canvas widget with which making vector graphics is easy.

GNOME provides infrastructure for networked objects via CORBA (though very few apps actually seem to use it, because of the regrettable complicatedness of CORBA - thus, panel applet-to-panel communication is handled with it, and a few other things, but that's about that). Stuff like session management, uniform application configuration system (well, there's two of them so it's not "uniform", gconf and the other... =), sound (ESounD) and printer access, and even game high score service is out there.

The amount of GNOME infrastructure is growing with each release. I read from somewhere that by GNOME 2.0, the actual API of the system libraries has been frozen, so we will only see more extension libraries and system components in the future.