It continues to be my opinion that the package system needs versioning with 
dependency version resolution. The NPM system wouldn’t work, since it can 
maintain multiple different versions in a project at the same time, but that’s 
probably a bad idea, anyway. The Bower, Clojure, and Ruby package versioning 
systems would be compatible with Racket’s concept of a package, and they work 
well. The current package management model is, in my opinion, incredibly 
dangerous.

Still, that would be a major project, so that aside, I agree that the 
backwards-compatibility story in Racket is subpar but can still be improved 
without a complete overhaul of the system (though perhaps not solved 
completely). As you mention, Clojure is basically prefix-in by default, but it 
does have a way to require identifiers without prefixing. I don’t think this is 
an intrinsically bad system, but it’s incompatible with the standard library’s 
naming conventions (i.e. racket/vector identifiers would need to be unprefixed 
so you could import them with (prefix-in vector- racket/vector)).

Just some musings of mine—this is a problem I’ve spent a sizable amount of time 
thinking about, although I haven’t done much to try and solve it.

> On Jun 24, 2015, at 1:11 PM, Greg Hendershott <[email protected]> 
> wrote:
> 
> p.s. I guess a third way is to always use prefix-in, which IIUC is the
> convention in Clojure. (I feel having prefixes on everything is
> distracting, but, it's another possible way.)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/50C0C0B1-7D9E-4845-8E76-B75EC1271E1C%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to