On the other hand I can definitely see the appeal of it (some python packages go against the recommendation and sort-of taint the style of other sources).
This so far was the only "weird" comment I could think of.
(I'd worry about ambiguities of the experts exchange / expert sex change type, too, but my guess is that they're extremely rare and usually either harmless or instantly caught by the compiler. Still, the mere possibility makes me twitchy.)
It can be used for good too, for example if you have a bunch of different naming conventions in the libraries you use:
proc some_lib_function(x: int) = echo "hi ", x
proc anotherLibFunction(x: int) = echo "hi ", x
proc crAzY_LIB_WRITERS(x: int) = echo "hi ", x
Then you can still call them consistently: someLibFunction(10)
anotherLibFunction(11)
crazyLibWriters(12)While this seems problematic they added some neat features to avoid problems with `uniqueness` of the name and so on.
One thing I wish at this point is to force the compiler to stop if this pattern is not uniform within a codebase.
Either way, I still find the idea a bit weird. If the language wants to be opinionated about naming, maybe it could simply make _ illegal in an identifier or, to push it one level further, refuse to compile any identifier that is not camelCase.
(But I'm not much of an IDE-user myself. Perhaps modern IDEs have enough hooks that you really can control this stuff?)
- You cannot have two underscores in a row
- You cannot have a leading underscore
The libraries aren't really there yet. Their number is growing, but some important ones are still missing: http://nim-lang.org/lib.html
So Nim really needs more active users and contributors.
I've fixed an issue you're experiencing: https://github.com/Araq/Nim/issues/1804 :3