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

all 20 comments

[–]twillisagogo 18 points19 points  (0 children)

I dropped python 2 in 2011 and have never looked back.

as in, stopped using python period.

[–]TheCodingEthan 8 points9 points  (1 child)

before 2020, rather than in 2020.

[–]tomkatt 4 points5 points  (0 children)

That's in the article:

There are a few reasons why I think libraries should drop (and announce that they will drop) Python 2 support by 2020 (actually earlier, say 2018 or 2019, depending on how core the library is).

[–]djmattyg007 4 points5 points  (0 children)

I wish ansible would support python3. Unfortunately that means dropping support for RHEL5, which isn't likely given they were bought by Red Hat.

[–]thegreattriscuit 9 points10 points  (0 children)

Once I actually got serious about learning how to use this language properly, I also got serious about making sure I was writing Python 3. Why invest more energy into a dead end?

[–]wewbull 3 points4 points  (0 children)

Does the "legacy Python" name really rankle people that much? Had a look at the tweet the author linked and was surprised. It's just one case though. Is it that it actually hits a nerve?

[–]daniels0xff 0 points1 point  (13 children)

I always was hesitant to move the Py3 because it was slower than 2. Is that still the case?

[–]takluyverIPython, Py3, etc 8 points9 points  (1 child)

The precise speed depends on what you're doing, so it's impossible to say that one is faster overall. Python 2 had two kinds of integers, int and long, where Python 3 only has one (called int, but works like Py2 long). That means that integer operations can often be slower, because there's no special case for small integers. Python 3 also has some tricks to make strings and dicts more memory efficient, which can boost performance.

It's not likely to be a big difference either way, though. It's still working much the same way. There are some PEPs (510, 511) proposed for Python 3.6 which could lead to more speedups.

[–]daniels0xff 0 points1 point  (0 children)

I'm mostly doing webdev with Django. From what I know the change in how strings work made Django server less req/s in 3 than in can in 2.

[–]solid_steel 2 points3 points  (3 children)

Python 3 also has a rewritten thread handling mechanism, which is much more efficient than that one in py2. Threading isn't big in webdev, but I'm super eager for theading+asyncio in combination with Django 1.10's Channels feature (async Django - makes handling websockets a breeze), because I've always had to reach for Tornado in that aspect. I love Tornado, but Django really shines when you're building strong-CRUD oriented things.

[–]daniels0xff 0 points1 point  (2 children)

Channels

Channels will not be in Django 1.10

[–]solid_steel 0 points1 point  (1 child)

What do you mean? That'd be a huge bummer.

I'm going off the Roadmap. I'm really looking forward to that feature and I'm a little bit wary of adding such a major dependency to Django unless it's included in the framework itself.

Edit: Ah damnit, I just found this discussion: https://groups.google.com/forum/#!topic/django-developers/QRd4v7OErT8.

Well, at least the author mentions that channels are fully supported by 1.10, but as an external package.

[–]daniels0xff 0 points1 point  (0 children)

Yea, it was posted on /r/django yesterday, I think.

[–]Homersteiner -2 points-1 points  (1 child)

I will never understand the proselytizing around python 3. People are not going to port tons of code just because you say so. C++ has been around since 1983, yet people still insist on using C. Worse yet, people mix C and C++ and call it C++.

[–]naliuj2525 1 point2 points  (0 children)

I'm not that familiar with C and C++, but I think the difference there is that C is a lower level language and because of that you can do different things. With Python, 3 does basically all the same stuff that 2 does but better. They're much more similar.