Why Python 3?

Chris Gonnerman chris.gonnerman at newcenturycomputers.net
Tue Dec 4 23:39:38 EST 2007


I spent some time today reading about Python 3, and specifically the 
differences between Python 3 and Python 2, and I was left with a 
question... why?  Why bother to change to Python 3, when the CPython 
implementation is slower, and probably will be for a while?

When I learned Python, 1.5 was the current version.  Each new version 
from 2.0 on brought goodies to the table... I think I have made use of 
about half of the "advancements" that have come along since.  But I was 
swayed into taking Python seriously by Eric Raymond's article in Linux 
Journal, where he talked about how much easier it was to read his old 
code in Python than in Perl, and how the whole white space thing wasn't 
so bad.  I discovered I agreed with him.  Python has been my favorite 
language ever since.

But... almost all of my old 1.5 code ported painlessly to 2.x.  No need 
for a "1.5to2" script, whereas I see that there is a "2to3" script for 
converting modules.  Python 1.5 and 2.x are "executable pseudocode," 
something that can be easily read by anyone with a modicum of 
programming knowledge.  In fact, the things I rarely or never use in 
Python tend to be those things I find hardest to read (like list 
comprehensions).  Few of the changes along the way have required me to 
change how I *write* code; probably the worst was the integer division 
change, which I disagreed with, but I went along with the community.

I don't see myself using Python 3 for a long time.  Probably as long as 
I can hold out.  Where are my goodies?  What is my payoff for learning 
how to write code the new way?  I can't see it.  Many things seem a lot 
less obvious... like, what was wrong with <dict>.keys() returning a 
list?  Now it returns some strange object type.

I don't think I can surely be the only one.  Certainly, I'm nobody 
important; it's not as if my opinion has any real bearing on the 
situation.  I suspect that many Python coders will stay with 2.x; after 
all, this is Open Source... there is no Micro$oft forcing us to upgrade 
to get more licenses.  If enough people stay with 2.x... will the 
project fork?  Will there be enough of "us" to maintain Python 2 
indefinitely?  Will module maintainers have to choose which version of 
Python to support?  It's already a pain for me to keep the GDmodule up 
with the current Python release... and it's a pretty small module.

I just don't see the point.  I feel like we already have all we need in 
Python 2.  I feel like the language is becoming less and less "friendly" 
and "readable" as it evolves.

Just my two cents, I guess.

-- Chris Gonnerman




More information about the Python-list mailing list