> modules in Nim provide no intrinsic guarantees about that splitting

There are not many languages that provide such guarantees. C guarantees 
nothing. C++ guarantees a member to be defined in the class definition or its 
superclasses, which in turn are not guaranteed to reside in any specifically 
named file. C# has class extensions, so no guarantees again. Ruby has 
implicitly object static functions, so no luck. Even if you take Java which 
provides a whole ton of guarantees, still a symbol could either belong to a 
class or any of its superclasses. Still all of these languages proved to have 
extremely large codebases. Usually they manage to do so by following common 
sense and good engineering practices. I personally love such approach. With 
powers comes responsibility.

>From my own statistics, the project I work on (splitted to libs) counts more 
>than 90KLOC of pure Nim code, not counting numerous dependencies in nimble 
>packages, and still there was no pain at all with name conflicts, lack of 
>namespaces, or symbol-origin-determination. However, there was some pain with 
>cyclic imports a few times, but that doesn't mean Nim is not the best language 
>out there 

Reply via email to