On Feb 8, 2012, at February 8, 201210:22 PM, Ben Noordhuis wrote: > On Thu, Feb 9, 2012 at 03:58, Marco Rogers <marco.rog...@gmail.com> wrote: >> I also think there is a bit of a contradiction between "low level" and >> "hiding implementation". IMO low level apis should expose as much as of the >> guts as possible (in a clean and consistent way) to provide maximum >> flexibility for higher level abstractions. If you feel like "Exposing >> ctors really invites the wrong kind of composability", then we should offer >> a more constructive way to achieve those goals. If we find can't, perhaps >> that means the api is hiding too much. This is what we're dealing with now >> with http. That other thread points to the fact that child_process has the >> same problem. > > The problem with exposing internals is that they can never, ever > change if they're part of a stable API. Exposing internals is > therefore only viable if the Node API got split into stable and > unstable parts, where the high level API is stable and the low level > API is not (and let the kibitzing on what constitutes high level and > low level begin). But how useful is an API that changes at whim?
I hit send too soon. If we *ever* want the API to exist it needs to get exposed *soon* because node in general is stabilizing. Either we expose these now and stabilize them with the rest of core approaching 1.0 or we are never going to see them.