C
Chris Gonnerman
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
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