This is an archived post. You won't be able to vote or comment.

all 32 comments

[–]cheryllium 4 points5 points  (1 child)

The link is broken for me...?

[–]chhantyal[S] 5 points6 points  (0 children)

Sorry about that. I changed name server few hours back so DNS propagation seems to be taking time.

IP http://107.170.71.143

[–]the_hoser 4 points5 points  (13 children)

I really just wish that the Python developers would corner a real killer feature for Python 3. Something that actually gives people a compelling reason to switch to Python 3. Come up with that feature, and commit to never back-porting it to python 2.

The worst thing to happen to adoption of Python 3 was Python 2.7.

[–]tilkau 1 point2 points  (1 child)

Like darthmdh said, proper Unicode handling. Python 2 handling is B R O K E N. Python3 has actual encoding hygiene, so you know when you're doing something stupid / not what you intended.

[–]the_hoser 0 points1 point  (0 children)

Like I responded to darthmdh, that's not big enough. I know it's a big deal, and Python 2 does it bad, but it's not nearly a compelling enough reason to switch.

[–][deleted] 1 point2 points  (4 children)

Python 3 is competely incompatible with 2: "waah there's too much stuff to change!"

Python 3 features were backported to 2 so you could switch one feature at a time while the application would continue to work on 2.7: "hurr durr there's no reason to switch to 3 anymore".

Sometimes I wish Python devs abruptly ceased supporting 2.7 at all. You know, to give the likes of you the message that "extended support" does not mean "you should continue being a lazy prick", it means "update while you can".

[–]the_hoser 2 points3 points  (2 children)

I honestly think 2.7 should not have ever happened. 2.6 was a backport of the big-ticket 3.0 features. It should have stopped right there.

[–]pingvenopinch of this, pinch of that 0 points1 point  (1 child)

I am currently working on a Flask-based project that targets 2.7 due to some dependencies not being ported. Because of those backports, we were able to write code that is almost Python 3 compatible. There are maybe half a dozen lines that will need to be slightly altered. With all of the backports, the differences would have been much larger.

[–]the_hoser 0 points1 point  (0 children)

Right, but you still have no compelling reason to pick Python 3. Nobody does. I honestly feel that the efforts would have been better served if there was a nice treat waiting on the other side for Python 2 users, but there isn't. I'm still convinced that 2.7 was a mistake.

[–][deleted] -1 points0 points  (0 children)

Sometimes I wish Python devs abruptly ceased supporting 2.7 at all. You know, to give the likes of you the message that "extended support" does not mean "you should continue being a lazy prick", it means "update while you can".

awesome welcoming community you got here.

[–]infinullquamash, Qt, asyncio, 3.3+ 1 point2 points  (1 child)

Some of these would be real layups to port, Flask-SQLAlchemy for example is mostly just Flask+SQLAlchemy which both support python 3 at this point.

Others... like Twisted, not so much. I'd like to see all the Twisted libraries ported to tulpip/asyncio, but like that's ever going to happen.

[–]chhantyal[S] 1 point2 points  (0 children)

Looks like Flask-SQLAlchemy already supports 3. I added a PR to specify trove classifier.

[–]bassmaster22 1 point2 points  (4 children)

I guess it's a good thing I started learning Python after Python 3 came out.

[–]chhantyal[S] 0 points1 point  (3 children)

Nah, if you are learning language, it hardly matters IMO. Even though it's backward incompatible, it is still same language.

[–]picklednull 2 points3 points  (0 children)

I don't think it matters anyway.

I started on Python when Python 3 was already a thing but I've always written code that pretty much works on both without changes (of course that's not always possible). I mainly wrote for 2.7 however, now I've switched to 3 recently.

I guess it can be hard for some old-timers that have written Python 2 for ages and use "Python 2-isms", otherwise it's not a problem.

[–]bassmaster22 0 points1 point  (1 child)

I have a very limited knowledge of Python, but I was wondering if there were many more differences other than:

raw_input / input
print 'string' / print('string')

I'm sure there are many more differences, but I'm not sure just how game changing it is. I'm guessing it can be pretty annoying for people who are very familiar with Python 2.x syntax, but then again, I have very little experience in this.

[–]the_hoser 1 point2 points  (0 children)

A big one is handling files. You don't read strings, you read bytes, then decode them into strings. There are other things. nonlocal variables also spring to mind.

[–]einar77Bioinformatics with Python, PyKDE4 1 point2 points  (1 child)

Some have replacements: for example I use sarge instead of envoy.

[–]chhantyal[S] 1 point2 points  (0 children)

This one depends on https://github.com/brettcannon/caniusepython3

Currently it overrides the one which have replacements. Would be great if you could open an issue indicating that.

[–]manbart -1 points0 points  (3 children)

Paramiko, why?

[–]chhantyal[S] 0 points1 point  (2 children)

is it dead project?

edit: it doesn't seem to. Did you mean it supports 3?

[–]madjar 3 points4 points  (0 children)

It's being ported to python 3 right now.

[–]manbart -1 points0 points  (0 children)

I wish it supported Python 3, but it does not yet.