Re: OOP, C, COM, and Bonobo



> My first question is, in the context of Bonobo, why C? I can imagine
> that this question has been asked before (though I've never seen an
> answer).  I am not a lanuage bigot (though somewhat of an Object
> Oriented bigot) and I most certainly recognize the strengths of C.
> However, when trying to implement a framework for building reusable
> software components, based upon object interfaces, object activation,
> et. al. one might ask why use a language that provides minimal support
> (constructs) for object oriented programming.  

>From the Bonobo FAQ:

    Bonobo is a component architecture for creating reusable and
    distributed software components.  These software components
    interact with each other through well defined interfaces which are
    specified in the CORBA Interface Definition Language.

    We distinguish between `Bonobo' the name of the component
    architecture, and `bonobo' which is the C-based easy to use
    implemenatation of the Bonobo component architecture.

    The bonobo distribution consists of the following pieces:

	* The Bonobo interface definition files: these establish the
	  standard interfaces used by Bonobo-based applications.

	* The core Bonobo runtime:  Bonobo contains a rich API for
          dealing Bonobo Objects (activation for example).

	* The Gtk-Based (and hence C-based) Bonobo framework for
          creating new Bonobo::Unknown derived interfaces.  These are
          used to simplify the development of CORBA-servers using the
          C language binding.

	  Each derivative of a BonoboObject implements an interface
          derived from IDL:Bonobo/Unknown:1.0.

	* A set of ready-to-use BonoboObjects derivatives that can be
          used in a variety of situations.  These are considered
          developer "sugar", although not required, they greatly
          simplify the development of Bonobo-based applications.

	* A set of "sugar" functions for manipulating client-side
          objects.  




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]