If I may articulate it in my own words:
In computer science-y terms, the primary benefit that namespaces provide is that they reduce the complexity of dealing with the name squatting problem from
N crates that an individual wants to publish, without namespaces requires solving that problem
O(N) times -- once for each crate, whereas with namespaces that problem is reduced to constant time
O(1) because after you find just one suitable namespace the naming conflicts problem caused by other users holding names vanishes in the context of that namespace.
The problem of choosing a name is enormous; it includes squatting, but also includes typical practical problems like discoverability, popularity, memorability, trust, etc., all things us mortals will not "solve" any time soon. There are an endless array of variables that contribute to the complexity of choosing crate names. Namespaces at least enable us pull a factor of
N out of it.
To be specific, I think the community should strive to realize the factor of
N complexity savings that something like namespaces provides, but it's not clear to me that "namespaces" as commonly conceived is the best formulation.
O(1) reduction argument is applicable to both perspectives mentioned in the blog post:
- Validating common authorship among crates - namespaces are valuable here because complexity of validating the authorship of each individual crate to just doing it once
- Avoiding naming conflicts - namespaces are valuable here because it reduces the complexity of choosing a name out of a crowded space to just doing it once