@typhlosion I think identifiers in programming languages must be limited to a subset of ASCII. Any use of non-ASCII unicode characters outside comments and strings should be forbidden.
Because it leads to errors as many many unicode characters look alike, while having different codepoint.
A nasty joke to make on a programmer you don't like ? Substituing a semicolon with a greek question mark.
@Feufochmar i'm glad programming language designers generally aren't sticks in the mud like you are
@typhlosion Cool feature does not mean nice feature from a maintenance point of view. Generalized Unicode identifiers are cool, not nice, especially when you do not work alone on your code.
Code should be easy to read, understand, and modify. There is too much potential abuse with unrestricted Unicode.
A nicer feature would be to allow the programmer to indicate which set of letters are used for identifiers in a source file. So that you are not limited to Latin.
@Feufochmar there's potential for abuse with just ascii too. i could give all my identifiers max-length base 64 uuids and make similarly awful code. either way, the responsibility for making the code legible and sensible is up to the coder. that responsibility doesn't go away just because they have more characters to work with
@typhlosion The base64 uuids abuses are easier to spot than mixed latin/cyrilllic/greek identifiers.
@Feufochmar (if you really want to make sure stuff like that is kept out of your projects, run pull requests and commits through a linter rather than asking to rob an entire programming language of potentially useful functionality)
@Feufochmar i'm getting irritated so let's just agree to disagree
@typhlosion
One of the few legit use of this fonctionnality I see is allowing writing code in other languages than English. The functionnality I proposed allows it too, but forces the programmer to tell which unicode block they wants to use.
However, most coding rules say to write code in English, notably when working in teams, or companies.
The linter should be part of the compiler, or provided with the language tools, as most of the time, one would be required for checking coding rules.