[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: The embedding thing ....
From:       Uwe Thiem <uwe () uwix ! alt ! na>
Date:       1999-09-30 17:32:18
[Download RAW message or body]

On Thu, 30 Sep 1999, weis wrote:

Wow! The master has spoken. Makes a helluva lot of sense to me what
Torben says.

Uwe

> Hi,
> 
> I think that there are some errors in the current discussion:
> 
> a) konqui <-> koffice
>    That is like comparing apples and eggs. Both have different demands:
>    koffice has MANY plugins, uses this broken and damn slow QPicture
>    hack. If you have 100 formulas, you can not have 100 widgets. That
>    is too slow and KWord can not handle it very well.
>    The QPicture approach means transfering lots of data between processes
>    and eats memory. So please stop saying: Konqui works -> koffice must,
>    too, unless you have more precise arguments.
> 
> b) CORBA and XML
>    Nonsense! Creating a GUI is one thig. But a GUI lives, has to be
>    updated, pixmaps of ColorButtons changed, bookmark menus extended etc.
>    Canossa uses XML only to arrange the actions in mens, toolbars and
>    submenus. XML in Canossa does NOT talk about menuitems, button,
>    comboboxes etc. That is up to QAction. When you use CORBA and XML
>    then you need a complete IDl wrapper for Toolbar and Menubar, otherwise
>    you can never modify anything.
> 
> c) CORBA and shared libs
>    Makes no sense: When you use shared libs, you kill the ability to
>    distribute components (nobody needs/uses that anyway) and you can
>    not link in a Java interpreter that easily since you would have to
>    merge Qt and Motif. You can not link in some GTK stuff for the
>    same reason. So there is no benefit in describing the interface
>    for shared lib components in CORBA. It is only bloaty.
> 
> d) Large data
>    Imagine an image filter which has to work on a 4MB QImage.
>    Shared libs wont help. You still have to put the image in
>    something that you can describe in IDL and that is for shure not
>    a QImage. of course you can try to hack that in cuteidl, but these
>    problems appear with all kind of classes with much data and you
>    can not always play with the language binding.
> 
> e) Stability
>    Crashing a distributed system correctly is a kind of art.
>    When one component fails it should free/stop/kill all related
>    components. But our CORBA stuff does not do that. if some KWord
>    that embedded a KSpread crashed, then it may happen that KSpread
>    survives or crashes. If the KSpread server is shared than it
>    should NOT crash, if it is not shared then it MUST stop :-(
>    But still we dont have that under control very well. Putting
>    stuff in a shared lib helps, since the shared libs crash with
>    the rest of the application. Remember the KDE0.x problems
>    with kioslaves eating all CPU time. Some nasty CORBA servers
>    may do the same after some partial crash.
> 
> f) Speed
>    Compare embedding in canosse and koffice and then we are done on
>    the topic.
> 
> g) Printing
>    Passing around a QPainter in Canossa is a cool thing. Currently
>    we pass around QPicture which is not supported in Java currently :-)
>    the QPicture approach is bad as I showed above.
> 
> h) Static XML GUI
>    As i already said: QActions can modify the menu items, or their
>    widgets inside of toolbars at any time. No XML us used to describe
>    the appearance of actions. XMl describes only ther order in the
>    menus/toolbars.
> 
> i) Interoperability
>    As outlined above this is currently with CORBA not the case. QPicture
>    and focus handling make it hard to use another language/toolkit.
>    And until now nobody ever wanted to implement a OpenParts binding
>    in TCL or whatever. So I think we dont need to shoot ourselfs
>    in the legs for a feature that actually nobody is using in practice.
> 
> j) Distributed KOffice
>    Only people who are ill in the brain distribute koffice
>    components on different servers :-) So we dont need that
> 
> k) KOffice embedding sucks.
>    Yes, it does. It does since 1 year or so and nobody fixed it.
>    And as a matter of fact nobody really uses it. So it seems unlikely
>    that it will become fixed in the next few days. If it had been that
>    easy, why did nobody try it with success before ? And nobody can
>    say that there are no attempts.
> 
> l) Easy to use APIs
>    Bad APi -> nobody learns it -> no code -> Does not matter how powerful
>    the API is since no code uses it :-)
>    This is OpenSource. We can not force people to learn OpenParts and
>    for understandable reasons almost nobody did.
> 
> I could add more, but I am tired.
> 
> Let me sum up what I want:
> I want a pragmatic approach. I dont care about technical visions and
> interoperability and all that cool stuff. I dreamed this dream much too
> long. The OpenParts/KOM/CORBA stuff is developed since over 1 year
> and mico even longer. In contrast it took me 5 nights to write
> canossa and convert KSpread to it. And it took me two more
> nights to convert kofficelibs and convert KSpread again to the
> new kofficelibs (done last night).
> 
> Lets face it: The 5 day work impressed many developers more than
> the result of over 1 year with CORBA is able to do.
> 
> There is a lot you can do with CORBA, but lets concentrate what
> 99% of the people need:
> 
> 1) fast embedding ->Canossa
> 2) easy APi for hacking ->Canossa
> 3) fast printing ->Canossa
> 4) embedding lots of formulas without the MS-Word effect ->Canossa
> 5) want up to date GUI APIs and not some wrapper that is not
>    up to date ->Canossa
> 6) System-Reliability: Apps may crash but the system may not.
>    But as outlined above crashing distributed systems is a problem
>    ->Canossa
> 
> What people currently dont seem to need (they only like to know that
> they could if they ever wanted to):
> 
> 1) Interoperability with other fancy languages ->CORBA
> 2) Distributing an office app over several machines ->CORBA
> 3) Embedding components of other fancy GUI toolkits ->CORBA
> 
> See what I mean? The pros of CORBA are technically interesting
> but actually nobody seems to make use of it. After more than
> one year nobody every used it, so what ?
> 
> I think canossa is the way to go. We keep CORBA for scripting
> of course and for communicating with shared servers like
> kmail, konqui etc. Even components like KSpread etc.
> keep their CORBA interface for scripting.
> 
> But when it comes to the constructions of a GUI then pure
> C++ and KDE/Qt is superior by far.
> 
> Please mind this difference:
> a) Scripting and remote control etc: CORBA is the way to go
> b) GUIs: Qt/KDE + C++
> 
> You can not say wether CORBA or pure C++ is the best. It depends
> on what you do. So why not use the best of both worlds as outlined
> above ?
> 
> Bye
> Torben
> 
> 

-------------------------------------------------------------------------
Uwe Thiem                                        Tel: +264 - 061 - 244511
P.O.Box 30955                                    Fax: +264 - 061 - 244511
Windhoek                                         Email:   uwe@uwix.alt.na
Republic of Namibia                                           uwe@kde.org
                                                       http://www.kde.org
                  **********************************
         You can still escape from the GATES of hell: Use KDE!
-------------------------------------------------------------------------

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic