top | item 1490850

Will Python 2 ever end ?

20 points| targeted | 15 years ago |requires-thinking.blogspot.com | reply

18 comments

order
[+] warp|15 years ago|reply
A big issue for anyone doing web development is that the WSGI spec hasn't been updated for Python 3. With unicode strings as the default (only?) string type in Python 3, the current WSGI spec is ambiguous in lots of places, and solving that isn't straightforward.

Further reading: http://lucumr.pocoo.org/2010/5/25/wsgi-on-python-3

[+] rhettinger|15 years ago|reply
> Will Python 2 ever end?

It will probably be around for a very long time. Some people are trapped by dependencies third-party libraries and others are trapped by mountains of existing scripts with scant tests.

The real question is when Python 3 will take-off and become dominant. We have at least a little evidence that the transition is happening, slowly but surely. At conferences, most attendees raise their hands saying that they have downloaded and tried Python 3. More and more third-party libraries are being converted. The newer Python books target Python 3. And, the python developer forums are showing a greater focus on working out some of the transition kinks.

IMO, Python 2.7 is wonderful on two fronts. It serves users who are stuck in 2.x land and it brings the two language variants closer together so that a transition becomes a smaller step.

[+] jedsmith|15 years ago|reply
This post is a bit of a rant for my taste, but I do agree with him on just one point. Python 3 was not enough of a clean break for me to get me very excited about jumping. There are some new things, but a lot of it feels like change for the sake of change. I believe this is what stifled my adoption of Python 3.0.

However, I disagree strongly with the writer that having a Python 2 and a Python 3 side-by-side is a bad thing. Adoption was expected to be slow all along, and there's nothing wrong with supporting Python 2 for the indefinite future. Python 2 has been a rock for many years. Even in the release notes, it's mentioned that Python 2.7 will most probably be supported beyond the typical two years.

On top of that, I think that most people are waiting on Django, SciPy, Twisted, and others before making the jump.

[+] jnoller|15 years ago|reply
It is a rant; but its to be expected to a certain degree. Python 3 is a big change, and while some may think it's "change for change's sake" (honestly, it really isn't) I expect we're going to hear more rants like this as the days go on.

We're steadily adding features to Python 3 which will make it an even nicer target, and things like NumPy are being ported soonish (there are python 3 builds available for it), so, yeah.

It's unfortunate we can not make the transition a cake walk for everyone, but as you said, Python 2 is a rock, and it would have been grossly irresponsible of us to just walk away from it. At this juncture, python 2.7 simply makes sense - it helps ease the ramp, and fixes bugs / makes other improvements, etc, etc.

[+] amix|15 years ago|reply
Developers care about perfomance and if Python 3 becomes faster than Python 2 then I think people will begin to port their stuff to Python 3.
[+] nailer|15 years ago|reply
Yeah, that's the way I feel too. Unicode safety is nice, but that's not enough for the pain right now. I imagine, 5 years down the track, a Python 3.5 or 4.0 including the same syntax and libraries but a way faster CPython.

Edit: sorry I wrote that when I was tired, forgot to add 'in 5 years time, that being the common version of Python'.

[+] terra_t|15 years ago|reply
Yep, a complete disregard for compatibility between versions means that there is no such thing as the "Python Language" anymore, just Python 2.2, Python 2.4, and so forth.

Back around 2001, Java apps were the scariest things to install on Linux systems because a good runtime didn't exist.

Eventually Java got it's act together and Python became the main offender. There were about four years that it was difficult to run the official BitTorrent client on Red Hat Linux because Guido decided to change the interface of the http libraries for no good reason.

[+] jnoller|15 years ago|reply
Excuse me? We have an obsessive regard for backwards compatibility and stability through minor/micro releases. Big changes are reserved for Major (2.6->2.7/3.0) releases.

Frankly, I've never worked with people more obsessed about not trashing existing code.

[+] agentultra|15 years ago|reply
The python3 devs claim that 2.7 will be the last.

I'm betting someone will pick up the torch long after the core developers give up support. They want everyone to migrate to 3.1, but it's still highly unfeasible.

So perhaps one day 2.x will eventually pass on, but I don't foresee it happening within the next 3-5 years.

[+] jnoller|15 years ago|reply
No, we - we being Python Core - want a calm, orderly transition to Python 3 over a period of several years. Python 2 will be around for some time, and we all know and accept that. Yes, if you have dependencies, using python 3 in production is not feasible. Even those of us who would like to be using Python 3 full time can not due to dependencies.

As for the OP - the transition/migration plan hasn't changed, and I'm personally sorry he feels burned, but Python 2.7 has always been on the roadmap for release. Our goal has been to make the 2.x series evolve into a gentle ramp into Python 3 as humanly possible.

The best way I've heard it put - use Python 3 if you can, Python 2 if you must.

[+] swolchok|15 years ago|reply
The biggest Python 3 annoyance I have is forcing Unicode strings on everyone. My code is not for widespread/enterprise release, so I do not care at all whether people for whom ASCII is not good enough can use it. Python 3 forces me to distinguish strings from arrays of bytes whether I want to or not.

(Also, 3 / 2 should be 1, not 1.5, dammit!)