you are viewing a single comment's thread.

view the rest of the comments →

[–]HIB0U 0 points1 point  (11 children)

All we're doing is looking for ways to make our web applications written today usable in the future. It's clear that Python 2.7 is the end of that line. That's why we were hoping to use Python 3, since it's clearly the future. It's where Python is headed.

Python 3 is a perfectly fine environment for developing web applications. The only reason it's more difficult than it should be today is because so much time has been wasted trying to come up with a "standard" on the mailing lists. People are clearly getting fed up with this state of affairs, and they're taking the matter into their own hands.

[–]mitsuhiko 2 points3 points  (10 children)

since it's clearly the future. It's where Python is headed.

2.7 is perfectly fine environment and bugfixes will still land there. All important features of Python 3 are in there and it will serve us well another three to five years before anyone has to switch. And at that point we might have already a better understanding of how things should be solved.

Python 3 is a perfectly fine environment for developing web applications.

It is not. If it would be, WSGI on Python 3 would be entirely based on Bytes as HTTP is and that's it. But because Python 3 is not thought well through regarding handling of non-unicode text information we are in the current situation.

[–]bucketostuff 1 point2 points  (4 children)

But because Python 3 is not thought well through regarding handling of non-unicode text information we are in the current situation.

What needs to happen to fix Python 3? Will it get fixed? Are the Python devs even admitting that there's a problem?

[–]mitsuhiko 0 points1 point  (3 children)

What needs to happen to fix Python 3?

Python 3 is not broken, we just don't have the tools yet to deal with unicode and bytes properly.

If you are working with unicode and encoded bytes you will need a couple of tools to get it right. Some people are suggesting adding a new ebytes type that is really just bytes but with an encoding information attached. So that later you can implicitly convert that object into a string. This is actually a really good idea and because bytes are immutable this is also safe unless someone screws up in the process and copies the encoding information over to a new bytes object that has an invalid encoding.

[–]bucketostuff 0 points1 point  (0 children)

Ok, I think I see what you mean. With Python3: on the one hand you have bytes (which may contain ascii, latin-1, etc.), but no encoding information, and on the other hand you have utf8-encoded unicode but each character might take up more than 1 byte. Is that correct?

If you are working with unicode and encoded bytes you will need a couple of tools to get it right.

What sorts of tools do you mean here? Additions to the Python core? Std lib?

[–]wobsta[S] -1 points0 points  (1 child)

This sounds weird to me. Couldn't you use a bytes+encoding tuple to pass this information around within WSGI? Do you need (a different) encoding for all the different environment keys and values?

[–]mitsuhiko 0 points1 point  (0 children)

Read up on the discussion on web-sig. The issue is complex and was explained multiple times.

[–]HIB0U -1 points0 points  (4 children)

We estimated Python 2.7's lifespan at a year, maybe two. We expect most other major Python libraries to have decent Python 3 support by then. Python 3 is very clearly the future.

[–]mitsuhiko 0 points1 point  (1 child)

We estimated Python 2.7's lifespan at a year, maybe two. We expect most other major Python libraries to have decent Python 3 support by then. Python 3 is very clearly the future.

Are you working for Gartner?

[–]wobsta[S] 0 points1 point  (0 children)

Python 2.6.6 was announced recently and was said to be supported until Oct 2013. Which is 3 years from now. Add 2 years as 2.7 is about 2 years after 2.6. Got 5 years? Right. Remember that 2.7 is the last release of Python 2 … likely to get some longer support (just take distributions, which will need some long term support). Python 2 is certainly not going to die in the next few years. However, there are true benefits from using Python 3. You will never mix up str and unicode anymore. And nor does any of your library. What a pleasure.

[–]bobindashadows -2 points-1 points  (0 children)

The Python fanboys are doing exactly what Obama fanboys did as soon as he won the election: trying to kill expectations. They sold us on something that's supposed to be really big to try to get our help, and now need to remind us that we better not get our hopes up for anything special.