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 -- http://mail.python.org/mailman/listinfo/python-list