Re: Kparts and Bonobo..



On Mon, 2001-09-17 at 20:40, Havoc Pennington wrote:
> 
> Erik Bågfors <erik bagfors nu> writes: 
> > So.  I would like to know alittle more about the differences between the
> > component-systems.  I'm sure that both systems are great technology and
> > I'm not trying to start a flame-war.  I wanted to ask this question
> > before this article but never got aroung to do it.
> 
> I would suggest reading the book Essential COM by Box. It explains
> what motivated COM, and what makes COM a component system.  I think
> it's clear that QObjects-in-shared-libraries (i.e. KParts) does not
> solve the issues Box describes, and is not a component system as he
> defines it. Examples of component systems would be UNO, COM, XPCOM,
> Bonobo, etc.
> 
> By my reading the author of the KParts article, like many people,
> thinks "component system" means compound document embedding. 
> For example, he says the following:
> 
>    "Components are a very powerful technology. Basically, a component
>     allow an application to provide its features and its interface not
>     only as an application but also as an embedded frame into any other
>     application of the desktop."
> 
> That is not what "components" means, at least not traditionally.
> Widget embedding is not a component system; COM doesn't even have this
> feature. In the Windows world, ActiveX/OLE/whatever do this; those are
> built on top of COM but are not equivalent to COM or part of COM. They
> are one specific application of a component system.
> 
> In all the component systems I listed previously, a component is
> anything that implements the base class that supports a
> queryInterface() method. An embeddable widget would be termed a
> _control_, not a component.
> 
> Anyhow, I think it is useful to understand the broader context of
> components and the problems they are intended to solve. A smaller
> solution like KParts does work fine for widget embedding or plugins,
> but those things aren't really the motivations for component
> technology, at least not historically.
> 
> Hope this is helpful and not a flame.

It is also important to make clear what is analogous in the different
systems so that we don't compare apples and oranges:

1. Binary Interoperability system allowing interfaces to be implemented
in different languages and to run on different computers:
(D)COM(+), CORBA

2. GUI controls interfaces and implementations, generally allowing
controls (e.g. buttons) to be used in an interface:
ActiveX, some parts of bonbobo(ui)/Bonobo(ui), KParts

3. Compound-document interfaces and implementations, allowing documents
and their functionality to be embedded in other documents (e.g. an
editable picture in an editable text document:
OLE2, some parts of bonobo(ui)/Bonobo(ui), KParts

Clearly I don't know the correct names for the relevant parts of bonobo.
Nobody knows the correct names for the windows equivalents.

Although KParts seems to implement 3, and maybe 2, it is not based on
any 1 so it is a lot less useful.






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