> 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.
