Bonobo

Bonobo is an architecture for creating reusable software components and constructing compound documents. It is an API defined by a set of CORBA interfaces, and used extensively in the GNOME Desktop and Developer Platform.

Using Bonobo, developers can utilise shared components written in any language that supports CORBA.

It allows for compound documents: embedded data-specific renderers and controls similar to those in the OLE system. A word processor, for example, can easily embed a spreadsheet by using the Bonobo-compliant spreadsheet component.

Bonobo components also allow for application scripting and automation. A Perl script, for example, could be used to control Gnumeric, a Bonobo-enabled spreadsheet.

Finally, Bonobo allows for various UI controls or widgets to be written in any Bonobo-supported language. It is this language-agnosticism that is fundamental to the GNOME project.