Copyright © 1999 by Miguel de Icaza and Red Hat, Inc.
| Abstract In most modern desktops, there is a mechanism to facilitate modular programming through reuse of Components and objects. The current GNOME desktop has much of the infrastructure necessary to provide this style of programming. The future direction of development in GNOME will focus on providing a large set of flexible components for rapid development. |
The success of UNIX stems in part from allowing users to create new and more complex results by joining smaller components. These components are joined using UNIX pipes to create large numbers of powerful applications.
Although pipes and filters are still invaluable to the poweruser, they have their limitations in today's more complex desktop environment. For example:
Pipes and filters do not scale well with more complex applications.
The information flow is unidirectional.
There is limited support for complex information representations. Characters, lines, and entire files are the basic unit of information exchange. In addition, there is no standard mechanism to check the type on the data that is being transferred.
One way to avoid these problems is to implement a component based programming framework. Unfortunately, UNIX has traditionally lacked a standardized architecture for such a framework. GNOME addresses this lack by providing such a component model, built heavily upon CORBA.
CORBA is the Object Management Group's (OMG) object broker. It allows applications to communicate to each other independent of what platform they are on or who wrote them. More information on CORBA is available at the OMG's homepage . The implementation of CORBA used in GNOME is ORBit. More information on ORBit can be found at ORBit's homepage .