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