Ariel Constenla-Haile wrote:
Hello Frank,

On Saturday 17 January 2009 19:08, Frank Schönheit - Sun Microsystems Germany wrote:
Hi Carsten,

With the following we work have been enhanced this API, by extending
it with new interfaces.
....

+com.sun.star.awt.XMenuExtended2

interface XMenuExtended2
{
    interface com::sun::star::awt::XMenuExtended;
    interface com::sun::star::awt::XMenu;
...
Given that "XMenuExtended" is not published, I suggest putting the
extensions made to it via "XMenuExtended2" directly into
"XMenuExtended". This would noticably reduce the API complexity IMO.

I first proposed that, but Carsten answered (I quote a private mail assuming his kind permission):

"There is one problem with your solution, I don't want that we change an interface (XMenuExtended) incompatible which has been available since four years. Although it's not published yet changing it would be a bad signal for developers who already use the interface. Therefore, from my point of view, the only solution would be to add a new interface providing access to images."


(And while we are at it ... is it just me as non-native English speaker
who thinks that "XFooExtended" sounds like ... well, non-native English
speakers creating API names? XExtendedFoo, or XFooExtension, or XFoo2,
or ... but "XFooExtended"?)

yes, there is the (deprecated) XExtendedToolkit. I just followed the XMenuExtended naming scheme, as it wouldn't make any sense to name XExtendedMenu2 with a XMenuExtended, so I also named XPopupMenuExtended, XMenuBarExtended.

I know my design is awful and looks complicated, but that's the best I could imagine in the current OOo API design/situation; vid. http://wiki.services.openoffice.org/wiki/User:Arielch/Menu_API_Enhancement#New_Menu_API_.28and_its_design_problems.29

Today [in d...@openoffice.org] Jürgen suggested "an incompatible change and redesign of the toolkit or a complete new one. First and foremost should we make use of the UNO "ease of use" features, means multiple inheritance, service constructor etc. to make it more comfortable and easier to use."
well, this have to be seen in the correct context. If we really think about a replacement of VCL and if we want a clear separation between UI and core via an abstract layer than i would suggest that we start with a incompatible redesign or a new UNO toolkit. And of course we should then allow incompatible changes over years to allow fixing design errors.


The awt module is just a reflection of the global situation in OOo API, or how do we interpret things like css.ucb.XSimpleFIleAccess/2/3 ... n? When will it stop? when they reach XSimpleFileAccess30? Of course css.ucb.SimpleFIleAccess/XSimpleFileAccess cannot be changed because they are published, the same goes for css.awt.X/PopupMenu and css.awt.X/MenuBar, so IMHO the published/unpublished concept should be redesign.
or it should be used more accurately. An interface that is intended for public use and not published after 4 years is questionable.

I still have a mixed feeling when we start talking about this basic design principle. I promised that i will come up with a proposal how we can handle "useful" incompatible API changes more flexible or possible at all. And i have to confess that i wasn't able to provide it till this day. But that means not that i am and probably others don't think about it.

Others FOSS projects are not affraid of incompatible changes, as FOSS is life and movement not something mummified.
maybe, both have pros and cons. I personally don't like to maintain a finished project and make it working with the next release because of incompatible API changes. But on the other hand i see the benefits for an API to evolve over time and to become better and better. And most impoertant better to use and more intuitive.


Juergen

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org
For additional commands, e-mail: dev-h...@api.openoffice.org

Reply via email to