James Carlson wrote: > Philip Brown writes: >... > >> To give a very specific, personal example, of when this kind of thing is >> USEFUL: > > I hear you, and I understand why you're complaining, but I simply > disagree. For the case you're citing, a contract was a better way > out, as was filing a bug and making sure that the powers-that-be know > that having no stable interface is a serious problem with the system.
What do you mean by "a contract"? Sounds like "a commitment to support an interface, in the way it is now, on an ongoing basis". That is explicitly NOT what I am asking for. I am NOT suggesting that all interfaces be stable and committed to. Aas far as "filing bugs" go... I dont have much confidence that filing a bug "there isnt enough documentation on this", is going to go anywhere. Do you? be honest now. if they are "too busy" to write it up in the first place, I dont think that some random person filing a bug, is going to get much traction either. Once again, please note that I was not complaining about lack of a "stable" interface. >> (if people want an interface to be TRUELY "private", while they play with >> things.. then dont put it in the public opensolaris tree. If, contrariwise, >> it is there, then document it to some minimal degree!) > > That explicitly disallows a set of cooperating projects to share > interfaces that they need without nailing those interfaces to a tree. well, gee.. if there are "cooperating projects, sharing interfaces"... it seems like the sane thing to do, would be to DOCUMENT those interfaces, to a level suitable for (semi)-project-external use, wouldnt it? :-) That just seems like good technical practice to me. However, by dint of your hypothetical situation about two projects sharing an interface... I think that also in and of itself, should never be allowed to be private, in the context of OpenSolaris. In my opinion, it should be on the public source tree, and documented as an interface. Otherwise, you just removed the "open" from "opensolaris". [if a developer is already share-minded enough to be sharing with "another project".. the incremental effort to share more widely, should be relatively small] > By saying "no private interfaces," you're going too far in the > "everything must be stable" direction. no, I'm not. What I'm doing, is insisting on minimally documented interfaces. not stable interfaces :-) > The result is either that the > owners of those interfaces are unable to change anything (for fear of > breakage), or they're constrained in the changes they may make > (certain redesigns are off the table, even if they're "right"), This sounds like a political problem, in that sun managers are not supporting the definitions, or the people who work under them. It's a political problem that the managers are not saying "do the right thing", but "play politics". Or on the other side, managers of people who used an unstable interface, are improperly putting pressure on other people, instead of making their OWN team rewrite the code once the interface has actually changed. Once again... a political problem. Managers doing the "cheap/easy thing", instead of The Right Thing. So... fix your managers. Dont hobble better technical practice, because of poor internal management practice.
