Live data from Hacker News

Removing Python 2.x support from Django for version 2.0

github.com

361–370 of 413 posts

Re: Removing Python 2.x support from Django for version 2.0

#361
post #6

This call has been made a while back, and it makes perfect sense. Python 2 is slowly being EOL'd and if you're starting a brand new Django project there's no reason on earth you should choose Python 2 anymore. Sure legacy projects still need support and for that they get the 1.11 LTS, but otherwise it's really time to move on.

>Python 2 is slowly being EOL'd and if you're starting a brand new Django project there's no reason on earth you should choose Python 2 anymore. Except that there are still some critical packages that aren't on Python 3 yet. Not to mention a lot of functionality breaks even if the libraries do exist, which means you have to code things up quite differently sometimes.

1) Super super SUPER old argument (that's completely wrong and out of date FWIW)

2) Let's see some proof of your argument, because many packages and platforms are happily supporting Python 3 now. Put your money where your mouth is.

Re: Removing Python 2.x support from Django for version 2.0

#362
There are only two possible opinions here:

A) You mostly have Python3 projects: Then you like it because you know more ressources will be spent on your pipeline and having more Py3 packages is also helpful.

B) You still have Python2 projects: You hate it, because it pushes you out of your comfort zone.

But I have to say, we want our langauges to develop as well. We want our packages to get attention. And there was lots of time to switch and experiment with switching. Ergo, it should happen. Even if you don't like it as much, that's where things are heading. Deal with it, move on. Let the community help you, if necessary.

Re: Removing Python 2.x support from Django for version 2.0

#363
post #342

Earlier quoted context omitted.

The reasons to upgrade are often dependent upon your usage case. To me, the Unicode improvements are reason enough on their own before you even get into the other great stuff (async work, type hinting, stdlib cleanup, pyc rework, etc). asyncio is going to be a slow build, as the ecosystem starts unifying around it. But as that happens, we'll be much better off for it.

Ruby offered an immediate 25% performance increase. That's a lot less niche than Unicode.

Unicode is niche?

Re: Removing Python 2.x support from Django for version 2.0

#364

Earlier quoted context omitted.

And have a confusing set of different and incompatible languages with the same name? People are complaining about Python 3 being named Python because some code breaks under it. That would be hell.

You already have Python 2. This is a continuation of it that is simply closer in semantic to Python 3. How could it be bad if apart from the Unicode semantics the two versions became equivalent?

There is no guarantee the two branches would converge.

Some things that are very useful are backported to 2, but others are just too much work.

Re: Removing Python 2.x support from Django for version 2.0

#365

Earlier quoted context omitted.

You talk as if Python 3 were a dialect of Lisp. It's still Python, looks like Python and feels like Python. In fact, I think most of my Python 3 code runs on Python 2.

You talk as if the switch doesn't look like a bunch of arbitrary decisions made on the appearance of purity. If more of an attempt had been made a maintaining compatibility, there wouldn't be nearly as much fight. Python 3 becomes a bit uncanny valley for me when I try to code in it and I tend to use a different language as there less of an internal code switch, especially as I still have to maintain large numbers of…

They got rid of a lot of cruft that's with us since 1.5.x. Python 3 is a great language, much better than Python 2 when you explore the differences.

Re: Removing Python 2.x support from Django for version 2.0

#366

Earlier quoted context omitted.

Don't know why you were downvoted: still waiting for a seamless Python X upgrade as well, without code duplication.

It already exists, as a Python2 fork: https://github.com/naftaliharris/placeholder

This is a terrible idea, please don't use this.

Re: Removing Python 2.x support from Django for version 2.0

#367

Earlier quoted context omitted.

Yeah no. I know that there are domains that are mostly on Python 2, and of course you'll always have legacy / unmaintained things lying around. But "zeee majoritie is Python 2.7!!1111" does not become true by some people chanting it over and over again. The simple fact that frameworks and libraries are moving away from Python 2 already proves that the majority does, in fact, not use Python 2. Otherwise maintainers wo…

There are some major products like Ansible, that are still only compatible with Python 2.7.

Yea, that really annoyed be about Ansible. You have to bootstrap systems like Ubuntu Xenial which only ship Python3 using the raw tasks.

As seen with Django, they were able to support both. I've been able to support both with the code base to some of my projects as well.

Currently I have one project I'd like to be Python3, but it will involve forking two dependencies (owfs and phidgets) and having them support Py3 (phidgets actually builds and entire python3 tree and installs it and yet you can't import anything from it because it's all python2 syntax -_-)

Python 3 has been out for quite some time. I don't see why everyone is still holding out.

Re: Removing Python 2.x support from Django for version 2.0

#368

Earlier quoted context omitted.

The Python 2.x EOL was extended to 2020.

I suspect Python 2.x will be extended like copyright.

I doubt it and that argument makes no sense. Copyright is extended thanks to the lobbying effort of huge business like Disney in order to make a ton more money.

Unless you see some big corporate support contracts coming over the horizon for PSF, not to mention they'd have to be worth the money vs the technical debt, I don't think Py2 support will get extended.

Re: Removing Python 2.x support from Django for version 2.0

#369
post #334

Earlier quoted context omitted.

The upgrade process of south was pretty shitty. The documentation was telling something like: Ensure you applied all previous migrations and then start from scratch. Thats not an upgrade path. It may work for standalone web applications, but I have a python project (packaged as deb/rpm package and using the packaged django version of different distributions) that should work with multiple django versions and the user…

If you were supporting applications which needed to work with or without South at the time of the transition, the best thing to do was probably ship two separate sets of migrations (one set written for South, one written for Django's built-in migration framework).

Yes, that's what I am doing. The problem is, how to preserve the state of the migrations when the user updates the django version.

Re: Removing Python 2.x support from Django for version 2.0

#370
post #17
post #6

This call has been made a while back, and it makes perfect sense. Python 2 is slowly being EOL'd and if you're starting a brand new Django project there's no reason on earth you should choose Python 2 anymore. Sure legacy projects still need support and for that they get the 1.11 LTS, but otherwise it's really time to move on.

Easy to say when you don't depend on C extensions only compatible with 2.7.

Wouldn't the problem be that you're already relying on unmaintained software?
Post reply on HN