Coming into this discussion as a result of the “Internals summary” email, it’s no longer clear to me what is being proposed. (I assume it was initially, but the ensuing discussion seems to have resulted in some changes?) I read A) that we’ll be adding a new capability (namespaces, which must be claimed on the basis of a URL) but not changing anything else, and B) that we’ll no longer need to worry about squatting in the existing (global) namespace, but it’s not clear to me how those two things aren’t contradictory.
Since that part of the proposal is confusing, I won’t comment.
What I will say, however, is that having some global crates and some namespaced crates is far from an ideal solution, because global names will always seem to have an air of “special-ness” to them. Some kind of “original crate privilege.” Like how having an implementation of hashids named “hashids” is better than having a crate named “johnny-hashids.” One of them obviously came first, and even if that doesn’t actually make the “original” crate better, it’s something that we–as imperfect animals–still take into account.
To be fair, I pushed for namespaces a long time ago, basically as a result of seeing the proliferation of iron-specific crates with super-generic names like “router.” “iron/router” would have seemed to me to be a lot less abusive of a limited shared resource (like, you know, the global namespace)–but to have them as required going forward (rather than optional) seems to pretty obviously damage the options available to future users of cargo. Furthermore, if they aren’t required going forward, then I don’t see what this solves regarding the idea of squatting.
Reading through the entire thread just now gave me the impression that there are a good number of legitimate problems with this approach and, although there are also potential solutions to those problems here, I couldn’t shake the feeling that they seemed like patches on a tire–ad hoc solutions offered under duress, in the heat of the moment, so to speak. Anyway, if you’re trying to sell me a tire, I prefer a new tire, you know?
I know I sound like an old man, but having a problem does not justify having a solution. Having a problem can justify having the right solution, provided that the unintended consequences of that solution aren’t worse than the problem itself. I understand that one of the great benefits of open source is that we have a large number of people attacking problems from every angle, but we still have to remember that doing nothing is also a viable response to most problems.
So, for now, I still advocate doing nothing.