Java Solaris Communities About Sun How to Buy United States Worldwide

GNOME Developer Resources

Table of Contents
 

Although GNOME is well known for its innovative and compelling user interface, it is much more than just another pretty face in the crowd. It is the beneficiary of a sound architecture that embraces the network, promotes the efficient development of reusable code modules, and facilitates smooth data interchange. These characteristics make it a perfect fit for today's Internet age, where customers are demanding better ways to use computers in highly-distributed, heterogeneous computing environments.

 
 

Overview of the GNOME Architecture

For a detailed description of the GNOME architecture and technologies, the best place to visit is the GNOME community's Web site for developers located at developer.gnome.org/.

Some of the more interesting modules you will want to investigate include:

  • GTK+ (GIMP toolkit) -- a C-based, object-oriented GUI toolkit for creating the user interface portion of a GNOME application. This free source project is hosted at www.gtk.org. Note that bindings are available for a variety of other languages as well. Languages currently listed at the Web site include Ada95, C++, Dylan, Eiffel, Guile, Haskell, JavaScript, Objective C, Objective Caml, Objective Label, Pascal, Perl, Pike, Python, and TOM. In other words, most of the languages you've heard of -- and a few more.

  • Accessibility Framework -- an advanced, built-in framework that provides the foundation on which developers can quickly write accessible applications and assistive technologies for use by people with disabilities such as blindness, limited vision, or lack of motor control. The framework has been carefully integrated with the GNOME desktop to make it easier to create accessible solutions that continue to work even after software upgrades. Look here for a complete overview of the accessibility architecture.

  • ORBit -- a small, fast implementation of a CORBA Object Request Broker (ORB). It is the plumbing behind GNOME's pervasive support for the creation of distributed and componentized software.

  • Bonobo -- a library for supporting the GNOME component architecture. This powerful new module is for creating reusable components and compound documents, thus delivering many of the benefits of GNOME. For more information, please visit developer.gnome.org/arch/component/bonobo.html.

  • GConf -- the GNOME network- and component-aware configuration management system. GConf makes it easy to handle configuration in situations where components can be embedded, distributed or both. Havoc Pennington's analysis of this feature can be found at http://developer.gnome.org/feature/archive/gconf/gconf.html.

  • glib -- a C portability and utility library for creating and manipulating common data structures such as lists, trees, and hash tables.

  • gdk-pixbuf -- an image library for manipulating images in a variety of popular formats.

  • libgnomeui -- a library of GUI-related GNOME code.

  • libgnome -- a library of non-GUI-related GNOME code.

  • gnome-print -- a library of printing routines.

  • libxml -- handles XML files in a fully specification-compliant manner, allowing GNOME programs to take complete advantage of this data structuring and interchange technology. It comes from Daniel Veillard as part of his work for the World Wide Web Consortium (W3C), the originators of the XML specification.

  • gnome-vfs -- a virtual file system library that allows uniform access to files in the local file system, FTP sites, packages, and compressed archives.

Did you notice the number of modules in this list relating to the network -- ORBit, Bonobo, gnome-vfs, ...? As previously noted, network-centricity is a key strength of GNOME and one of the key reasons Sun has adopted it. GNOME's architecture and overall approach dovetails nicely with Sun's own strategy, summarized by Sun's longtime vision of The Network is the Computer.

Most people that develop software for GNOME use the well-known free source GCC compiler and associated build tools. The Free Software Foundation's GCC home page is located at http://www.gnu.org/directory/devel/compilers/gcc.html. Another important tool is the Glade user interface design tool for GTK+, which comes with Sun's GNOME 2.0 product. For more information, please visit glade.gnome.org.

 
 

How Portable are GNOME Applications?

Most applications that are designed to work with GNOME, the standard GNOME libraries, and POSIX-compliant APIs should run on any platform on which GNOME is hosted by simply recompiling the source code for the instruction set used by the host processor. GNOME runs on the Solaris Operating Environment, GNU/Linux, and most other flavors of UNIX® software; it also supports several processor architectures. This means you can reach many more customers with just a little extra effort.

Be on the alert for portions of your source code that might have chip-architecture dependencies, such as reliance on a little-endian or big-endian byte order. You will want to modify these portions to maximize the portability.

 
 

Where Does Java Technology Fit In?

GNOME fully supports the Java Runtime Environment, which is a standard service provided by the underlying Solaris Operating Environment, so virtually all Java technology-based applications run just as they do when another desktop user environment (such as CDE) is running. This means that GNOME in no way interferes with your ability to create Java technology-based software -- you can continue taking full advantage of the benefits of Java development, such as binary portability, productive development, and well-structured code. Over time, Sun plans to make it possible for even closer integration of Java software with the GNOME environment.

 
 

Where Can I Get More Information About Programming for GNOME?

Several introductory books on GNOME programming are available now. And as the popularity of GNOME increases, more are sure to follow. Here are a few of the ones you might want to check out:

  • GTK+ / GNOME Application Development by Havoc Pennington (1999, New Riders). Although this book covers GNOME 1.0, it is still a useful introduction to the architecture of GNOME and the GTK+ framework and is written by a leading contributor to the community.

  • Teach Yourself GTK+ Programming in 21 Days by Donna Martin, et al. (2000, Sams).

  • Beginning GTK+ / GNOME Programming by Peter Wright (2000, Wrox Press Inc.).

  • GNOME/GTK+ Programming Bible by Arthur Griffith (2000, IDG Books).

  • Writing GNOME Applications by John R. Sheets (2001, Addison-Wesley).

There are also useful online tutorials available, such as:

To keep in close contact with the GNOME community, you may want to join some of the GNOME mailing lists that exist to support a variety of topics. For details, see:

http://mail.gnome.org/

 
 

Summary of Important Web Sites

 
Contact About Sun News & Events Employment Site Map Privacy Terms of Use Trademarks Copyright Sun Microsystems, Inc.