

Will Python 2 ever end ? - targeted
http://requires-thinking.blogspot.com/2010/07/will-python-2-ever-end.html

======
warp
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
> 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
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
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
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
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'.

~~~
jnoller
Unladen swallow's JIT is coming to Python 3 a lot more quickly than 5 years.

------
terra_t
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
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
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
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.

~~~
shasta
For now a better guideline is: use Python 2. Even if you don't have any
dependencies that require Python 2 today, at the start of your project, you
might wish you could add them tomorrow.

~~~
jnoller
And using 3to2 you can easily "downgrade" your code should you desire that.
Green field projects should totally feel comfortable with using it.

------
swolchok
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!)

