Some standard counterarguments:
- “This just moves the squatting issue to scopes”
- “Unscoped packages are privileged over scoped ones”
- “How do you map scopes onto Rust identifiers”
Some specific benefits:
- Crates’s global namespace was inspired by npm’s (as the most recently notable package manager)
- And this is npm’s solution to the perceived problems with a global namespace
Some specific drawbacks:
-
@scope/package
is so great for JS because there is nothing special aboutrequire('@scope/package')
overrequire('scope')
. - Rust would at least have to require
lib = { package = "@scope/package" }
or come up with a “mangling” that makes scopes special in Cargo-Rust communication
I’m neutral on @scope
versus scope-
versus any other proposed namespacing proposal. I still believe namespacing is useful, but doubt how much “author” namespaces will be used for “serious” packages.