> But two totally different issues are being conflated here: readability, and 
> clashes/ambiguities between names. Namespaces address the latter; they really 
> don't have anything to do with the former.

There are lots of different issues conflated here, because the topic/claim is 
(as I understand it, anyway): Nim projects _in general in practice_ are harder 
to "navigate" without tooling than C# projects. This "navigation" aspect then 
is named "readability" or "ability to reason about the code" or 
"maintainability" in order to have a stronger argument.

Back to C#: Consider `obj.x`. If `obj`'s type is `Obj`, does it mean `x`'s 
declaration is in `Obj`? No, it could be an extension method. No, it could be 
in a superclass of `Obj`. (The superclass aspect also applies to Java btw.) Is 
it common to find it in `Obj`? Yes. Is this relevant to the topic? Yes. Is 
"navigability" affected by language features like subclassing, extension 
methods, dynamic field lookups? Yes. The more these features are used in 
practice, the more navigability suffers.

By this reasoning Python is far worse than Nim (dynamic field lookups 
everywhere, no static typing/information) and C# should fare better than Nim. 
However, my argument is that C# is nowhere near "flawless navigability on 
github", the benefits are marginal at best. YMMV.

Reply via email to