Frank Schönheit - Sun Microsystems Germany wrote:
Hi Stephan,
I know, I know.
Thinking once again about it, a cheap peace offering
uh, sorry for the rant then - it wasn't intended as declaration of war :)
No problem. I did not really interpret it as such, either.
could be the
introduction of an "extensible" keyword for interfaces and the concept
of interface ownership:
- You must not implement objects that have an extensible interface
unless you are the owner of that interface (that implies that you must
not introduce service or singleton specifications that implement that
interface, either
again unless you're the owner, right?
Yes.
).
- You cannot inherit other interfaces from an extensible interface.
except other extensible interfaces?
No (see below for rationale).
- The owner of an extensible interface can add members to its end
(inherited interfaces, methods, attributes).
Why at the end only? Do we gain something with this restriction, and do
we gain it in *all* language bindings, or would some bindings "break"
regardless of it?
The C++ language binding would not (without modifications I would not
dare to think about) be able to handle anything else (incl. inheriting
from extensible interfaces). So this sketch of a proposal is written
from the perspective of "how can we modify existing interfaces without
the current C++ language binding breaking down when mixing clients
compiled against old interface versions with producers built against new
interface versions." (All other languages should be more flexible here,
so that I assume no extra problems for other language bindings.)
Not completely thought through, but should probably work. How does that
sound?
Like a great first step towards a living API, which is fun to design,
without feeling blocked unnecessarily.
Come on, the real fun is creatively pressing new functionality into
existing, rigid API. :)
-Stephan
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]