[Python-3000] Support for PEP 3131

Michael Urman murman at gmail.com
Tue Jun 12 04:56:10 CEST 2007


On 6/11/07, Baptiste Carvello <baptiste13 at altern.org> wrote:
> Michael Urman a écrit :
> > There is the risk of visually aliased identifiers, but how is that
> > qualitatively worse than the truly conflicting identifiers you can
> > import with a *, or have inserted by modules mucking with
> > __builtins__?
> >
> Oh come on! imports usually are located at the top of the file, so they won't
> clobber other names. And mucking with __builtins__ is rare and frowned upon. On
> the contrary, non-ASCII identifiers will be encouraged, anywhere in the code.
> The  amount of information you get from today's python code is most of the time
> sufficient for debugging, or for using it as an inspiration. With non-ASCII
> identifiers, these features will be lost to all users who cannot read the needed
> characters. Denying the problem is not a good way to answer other people's concerns.

I think you overestimate my understanding of "the problem". To me
there is no problem (equal parts blindness and YAGNI; neither feel
like denial). As I am not going to be interested in trying to
understand code written in Chinese, Russian, etc., I'm not bothered by
the idea that someone might write code I will have a strong
disincentive to read. Am I underrating this concern because it doesn't
bother me? I don't see transliterated-into-ASCII as any better for
comprehension.

So to me that leaves the various potential aliasing problems that have
been described, and those honestly feel to me on par with import * and
builtins hackery. Yes these are discouraged, and aren't cause for
major concern. Similarly code intentionally designed to confuse would
be discouraged. I understand that Ka-Ping and several others do see
visual aliasing as a problem, so that is why I asked how it's
qualitatively worse.

I'm hoping that seeing answers from that angle (how is the potential
for aliasing worse than the potential for overriding int or str or
__import__ in some module you import) will help me understand why what
seems to me like a non-issue can be so important to others whose
opinions I respect. Is your concern that a flood of library code you
cannot read will be the only code written for things you want to do?
Or something else entirely?

-- 
Michael Urman


More information about the Python-3000 mailing list