GNOME, Its State and Future

The GNOME team bring us up-to-date on the progress of this popular desktop environment.

The GNOME Project is aimed at making UNIX
attractive and easy to use. To help achieve the goals of the GNU
project, we want to make sure that users are presented with a full
suite of applications, as well as a desktop that enables them to
manage their computers effectively. The GNOME team has been
focusing on creating a reusable infrastructure of development
libraries and tools, along with productivity applications based on
this infrastructure.

GNOME Overview

The goals of the GNOME Project can be divided into three
areas:

a full-featured desktop environment

a set of interoperable applications with a
consistent, easy-to-use interface

a powerful application development framework

The Desktop

The desktop environment is not the set of applications, such
as a web browser or a spreadsheet, with which a user interacts with
the system to do useful tasks; rather, it is the utilities which
provide the user with control over the working environment. As the
most immediately apparent part of GNOME, the desktop environment
includes the file manager, panel and help browser, as well as other
utilities necessary for the day-to-day maintenance of one's
computing environment.

The GNOME session begins with the GNOME Display Manager which
grants access to the system. The beauty of this process is that the
author of GDM rewrote the whole login sequence to be secure and
extensible. The GDM code base is designed to be robust and
secure.

Figure 1. GNOME Screenshot

From there, the GNOME panel and the GNOME file manager
provide the desktop functionality to let users launch applications
and manage their information see Figure 1).

The GNOME desktop was the first desktop to include
application themes. Application themes are a way to make
applications look different. People can choose to make their
desktop look like other popular systems, or tune it to suit their
needs and personal interface desire. The next major release of
GNOME will include a new, updated and better integrated theme
mechanism, and also theme packages that will affect the entire
desktop, not just the applications.

We also integrate the GNOME personal information management
system (calendar, address book, task list) with the Palm Pilot, and
more systems can be plugged into the system. To learn more about
this feature, visit
http://www.gnome.org/gnome-pilot/.

The GNOME Workshop

Just being able to choose a screen saver, organize icons,
browse application menus and move files doesn't mean you are a
productive member of society. What users want is a set of
applications to help them accomplish actual work. This is where the
GNOME Workshop project comes in. Many applications not done by the
core GNOME team are available, but would be much more useful if
they were integrated with each other and the desktop. The GNOME
Workshop project wants to make a set of highly integrated
applications to do what you need, whether it is managing finances,
writing letters or editing a picture. Components of GNOME Workshop
that have already reached a functional state include a highly
capable spreadsheet (Gnumeric), a word-processing application
(AbiWord), and an image-editing application (the famous GIMP).
Other component applications are coming along quickly, and news of
their releases will be listed on the GNOME Workshop home
page.

Figure 2. Gnumeric and Bonobo

Developer Goodies

Another important part of GNOME is the development
environment. UNIX has not had a history of applications with a
consistent and powerful graphical interface. The few graphical
applications that existed all behaved and looked a little
differently, usually did not have a powerful interface, and were
not easy for their developers to write. GNOME addresses this last
need by simplifying the development of applications, allowing the
creation of easy-to-use and powerful graphical interfaces.

GNOME provides a high-level application framework which frees
the programmer from having to worry about the low-level details of
graphical application interfaces, allowing him to concentrate on
the actual application. Glade, a tool for user-interface design
used by many GNOME applications, takes this concept a step further
by allowing graphical creation of a program's user interface. The
Libglade library allows user interfaces to be created at runtime
from the XML interface description files saved by Glade. GNOME also
recognizes that not every programming language is useful for every
kind of job. We paid special attention to making the GNOME APIs
easy to wrap and export to other programming languages, to let
people develop their GNOME-based applications in their language of
choice.

In addition to C, which the core GNOME libraries are written
in, there are bindings for many languages, including C++, Objective
C, Guile, Python, Perl, Ada95, Tom, Pascal, Haskell and others.
Java bindings are in development; when coupled with
gcc's ability to compile Java
code, Java may become a viable alternative for GNOME
programming.