On Wed, 2008-04-30 at 14:14 -0700, Philip Brown wrote:
> Darren Reed wrote:
> > 
> > Should we just abandon the idea of Private intefaces?
> > No, I don't think so but we need to give a lot more care to when
> > we decide something is Private.  Just because an interface is not
> > the final version, be it experimental or otherwise, is not what
> > I would call good enough justification for "Private".
> 
> 
> In my opinion; yes, you SHOULD abandon the idea of Private interfaces.
> In the "new world order" of supposedly "open" solaris, the lowest case 
> should be something like "unstable".

The fact that you can read the source code is orthogonal to the issue
being discussed.

Have you ever written object oriented software?  If so, maybe the
following analogy drives the point home better than the published ARC
interface taxonomy.  By design, your objects export methods that are
expected to be invoked by other objects.  Call those "Public".  You also
have a bunch of functions within the objects that are simply part of the
implementation and not exported as methods.  Call those "Private".  For
obvious reasons, you don't want random pieces of software reaching
within your object and calling these "Private" functions, as a random
decision to re-organize your code will break these stray consumers.  You
can, however, manage change by knowing that other pieces of software
external to your objects are interacting with it via a well-known set of
methods which are exported as "Public".

So, the distinction between what is "Private" and what is "Public" is
very much appropriate and required in order to sanely manage change in
complex software systems, and has absolutely nothing to do with whether
or not the software is open-source.  The issue that Darren raised wasn't
intended to result in the removal of the Private interface taxonomy, but
in better managing how that taxonomy is applied (at least that's how I
took it).  The original point is valid, IMO.

> Perhaps someone could explain the specifics of that label.
> 

http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/

-Seb



Reply via email to