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