Re: Kparts and Bonobo..



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.

Havoc





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