This chapter gives you an overview of the technologies
described in this book.
Gnome is a free (or "open source") software development
project started in 1997 by Miguel de Icaza of the Mexican
Autonomous National University and a small team of
programmers from around the world. Inspired by the
success of the similar K Desktop Environment (KDE)
project, the burgeoning popularity of the GNU/Linux
operating system, and and the power of the GTK+ graphical
toolkit, Gnome grew quickly --- within a year, hundreds
of programmers were involved and many thousands of lines
of code had been written. Gnome has become a powerful
framework for GUI application development which runs on
any modern variety of UNIX.
"Gnome" is actually an acronym: GNU Network Object Model
Environment. Originally, the project was intended to
create a framework for application objects, similar to
Microsoft's OLE and COM technologies. However, the scope
of the project rapidly expanded; it became clear that
substantial groundwork was required before the "network
object" part of the name could become reality. The latest
development versions of Gnome include an object embedding
architecture called Bonobo, and Gnome 1.0 included a
fast, light CORBA 2.2 ORB called ORBit.
Gnome is a part of the GNU Project, whose overall goal is
developing a free operating system (named GNU) plus
applications to go with it. GNU stands for "GNU's Not
UNIX", a humorous way of saying that the GNU operating
system is UNIX-compatible. You can learn more about GNU
at
https://www.gnu.org.
Gnome has two important faces. From the user's
perspective, it is an integrated desktop environment and
application suite. From the programmer's perspective, it
is an application development framework (made up of
numerous useful libraries). Applications written with the
Gnome libraries run fine even if the user isn't running
the desktop environment, but they integrate nicely with
the Gnome desktop if it's available.
The desktop environment includes a file manager, a
"panel" for task switching, launching programs, and
docking applets, a "control center" for configuration,
and several smaller bells and whistles. These programs
hide the traditional UNIX shell behind an easy-to-use
graphical interface.
Gnome's development framework makes it possible to write
consistent, easy-to-use, interoperable applications. The
X Window System designers made a deliberate decision not
to impose any user interface policy on developers; Gnome
adds a "policy layer," creating a consistent
look-and-feel. Finished Gnome applications work well with
the Gnome desktop, but can also be used "standalone" ---
users only need to install Gnome's shared libraries. It's
even possible to write Gnome applications which do not
rely on the X Window System; you might want to provide a
non-graphical CORBA service, for example.
This book is about Gnome from a developer's point of
view; it describes how to write a Gnome application using
the Gnome libraries and tools.