Doc O'Leary, I've read your post/response and I don't know how to respond. You seem to think that "versioning" is the solution to all the ills when I've pointed out issues that versioning simply doesn't address. And my posts were merely augmenting/clarifying items relating the JavaScript 2.0 references cited in the original post on selector-namespaces. I've also made it abundantly clear that versioning is already a supported language option and that the PRAGMATIC issue is that in REAL situations of just-in-time deployment it NOT always an option. Why are you ignoring the realities of software deployment and telling me what I already know about the ideals of versioning. You also prattle on about namespaces with non-specific "dogma", yet you could not have had experience with "selector namespaces" which ARE NOT just "namespaces" as we see in other systems. They are a NEW Unifying Feature for Dynamic Languages that provide a more general solution to what SOME static languages have provided in the form of "public", "private", "protected". They are not meant to be a SUBSTITUTE or REPLACEMENT for versioning [rather they augment it], they are designed to address REAL issues [which one can demonstrate "versioning" does not adequately address; as per one (or more) of my posts] in the area of effective/reliable deployment in 3rd party late integration scenarios. -- Dave S. [www.smallscript.org] "Doc O'Leary" <droleary / subsume.com> wrote in message news:261120011434138056%droleary / subsume.com... > In article <J2cM7.46373$RG1.23988812 / news1.rdc1.sfba.home.com>, David > Simmons <david.simmons / smallscript.com> wrote: > > > "Doc O'Leary" <droleary / subsume.com> wrote in message > > news:251120011105195454%droleary / subsume.com... > > > In article <Su_L7.44988$RG1.23138548 / news1.rdc1.sfba.home.com>, David > > > Simmons <david.simmons / smallscript.com> wrote: > > > > > > > > > > What we would like is some mechanism to ensure that the two different > > > > versions of #size remain independent. Selector namespaces directly solve > > > > this issue. > > > > > > Actually, they don't. The real issue in this case is that a > > > subclass/method intended for the 1.0.0.0 version of BitTracker is being > > > applied to the 2.0 version. To directly address this problem, you > > > would do something about the: > > > > > > Requires module: BitTracker. "version constraints elided" > > > > > > part of the issue. Modern systems are already pretty good when it > > > comes to issues of version managment. Namespaces, as is so often the > > > case, don't really solve the problem here and unnecessarily complicate > > > matters. > > > > I think you missed the primary point -- which is solving/addressing the > > challenges of change in the face of the pragmatic reality that versioning is > > not being used by the client/consumer, and/or multiple versions may not have > > been provided or may not have been a viable option for the "provider". > > If the direct problem is with versioning, the solution should deal with > versioning. Hacking out an unrelated solution to address the issue is > bad design and development. > > > With > > the selector-namespace approach, only the provider had to be using a > > well-planned design approach. With the key being that whether or not the > > client was also well planned and versioning was employed [either for detect > > only, or for select of an older version], their code will still continue to > > work. > > Uh, no. By introducing namespace resolution, you have in fact moved > the burden of "using a well-planned design approach" on to the client, > not the provider. The clients code will not work unless they go to > great care to make sure proper namespaces are respected in their code. > As a result, dependencies are scattered all throughout the code instead > of being in one place. > > > The client use of versioning would provide them with warnings > > regarding the need for (possibly) updating their implementation. > > An *actual* solution would be based on this, perhaps allowing the > client to override version requirements if they *knew* dependencies > were met for the newer version. > > > The exact point of this example [hence my pointing out that versioning > > pre-requisites were elided] was that we wanted a pragmatic solution for > > defensively encapsulating change [where multiple versions and/or version > > based identification of the problem was not a viable option; and was not > > being applied]. The situations where this is needed is a very common (real) > > deployment [just-in-time/late integration] scenario. In the face of that > > reality, can component software and scripting solutions be built which solve > > the problem. The answer is yes, and the solution provided does address the > > issue. > > It addresses it improperly, as though namespaces were a silver bullet > for all the ills of integration. In my experience, that is not the > case, and they in fact tend to produce code that is less coherent and > more difficult to maintain. Instead of waving around namespaces like > some magic wand, please *do* be pragmatic about what the actual > problems are and what appropriate solutions would be. In reality, > solutions to such problems require richer language features rather than > simple namespaces.