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.
