[Python-Dev] Support the /usr/bin/python2 symlink upstream

Steven D'Aprano steve at pearwood.info
Wed Mar 2 21:16:30 CET 2011

James Y Knight wrote:

> I suspect he's saying it'd be better if the time didn't come (if so,
> I'd agree). Python3 *is* unfortunately a new and incompatible
> programming language, it makes sense for it to have it have its own
> interpreter name. 

Oh come on, there's like three incompatibilities versus three thousand 
things that are compatible. A pox on your discontinuous mind! *wink*

Seriously, most of the changes are library changes, not language 
changes. The similarities far outweigh the differences. I don't think 
there is a generally agreed upon objective boundary between "dialect" 
and "language", but to my mind the change between 2.x and 3.x falls 
squarely under "dialect".

In the same way, I don't care that William Shakespeare's everyday speech 
would be nearly incomprehensible to my ears, and mine to his, we both 
speak (spoke?) English.

In my opinion, the biggest change from Python 2 -> 3 is that we actually 
provide developers tools for migrating scripts rather than leave it for 
them to deal with the changes themselves. I recently ported a client's 
application written for 2.3 that used string exceptions everywhere to 
2.6. I would have loved a "2.3to2.6" fixer :) I don't consider 2.3 and 
2.6 to be different languages, and I suspect neither do you, even though 
code that runs fine without even a warning under one raises a 
SyntaxError under the other.

Every time we drop or rename a module from the standard library, we 
break scripts. Such backwards incompatibility is not enough to delineate 
different languages. Even syntax changes are not necessarily enough.

> Eventually /usr/bin/python might no longer be
> installed, but that doesn't mean python3 shouldn't simply be called
> python3 forever.

I already call Python 3 "python" in casual conversation. There is *no 
way* that I will be calling it "python3" in fifteen years time, when 
Python 2.7 is as dead and forgotten as Python 1.5 is now, just to 
satisfy some overly strict definition of "different language".


More information about the Python-Dev mailing list