There are really two issues here, and they're being
confused.

    One is allowing non-English identifiers, which is a political
issuer. The other is homoglyphs, two characters which look the same.
The latter is a real problem in a language like Python with implicit
declarations.  If a maintenance programmer sees a variable name
and retypes it, they may silently create a new variable.

    If Unicode characters are allowed, they must be done under some
profile restrictive enough to prohibit homoglyphs.  I'm not sure
if UTS-39, profile 2, "Highly Restrictive", solves this problem,
but it's a step in the right direction.  This limits mixing of scripts
in a single identifier; you can't mix Hebrew and ASCII, for example,
which prevents problems with mixing right to left and left to right
scripts.  Domain names have similar restrictions.

    We have to have visually unique identifiers.

    There's also an issue with implementations that interface
with other languages.  Some Python implementations generate
C, Java, or LISP code.  Even CPython will call C code.
The representation of external symbols needs to be standardized
across those interfaces.

                                John Nagle
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to