The problem of Nim, as a Japanese documentation I've found had pointed out, is 
that it's useful for a solo-programmer but not for a team consisted of many 
programmers. The lack of namespaces, main functions and restrictions-on-access 
makes it hard to code cooperatively, but if you were a solo-programmer, would 
you like to write `static public void main` whenever you're trying to make a 
small script? If you were the only programmer of a project, would you like to 
be forced to mark everything as `public` in order to have the access to them? 
If the project goes very large, those help structuring the code well, but while 
the project is not large, those are just annoying features. Those will 
introdoce a large complexity at the first place, and thus increase the 
difficultiy of learning. The decision to avoid those makes Nim to be favored by 
solo-programmers, part-time developers, and students, but not by large 
companies. However, if it changes, it loses the current market. This is similar 
to the problem faced by Linux and some other open-source projects, I think.

As for indentation, it's different, as it _increases_ the cost of learning (The 
learner must first know that "indentation" means to have more spaces at the 
start of a line, before learning further) and the cost of restructuring the 
code (one must add/remove the correct amount of spaces when moving a block of 
code into another place), but reduces the visual burden when viewing the code 
(especially when the project is small), which I think is worth the cost. As 
Python continuines occupying the top of TIOBE Index, being indentation-based 
should not be considered a disadvantage.

Reply via email to