8 ms·
So, after a poor evolution strategy that lead the Python world to be split in two and forces maintainers to offer two versions for the same library, and upstrea
by alanfranzoni 10y ago
So, after a poor evolution strategy that lead the Python world to be split in two and forces maintainers to offer two versions for the same library, and upstream maintainers to offer support for two different python versions, the same is happening for Django!
I speculate that the latest Django 1.x will remain used - and possibly the most used - for a lot, lot of time.
- alanfranzoni 10y agoPlease, don't tell me how "Python3 is good" - I know everything. I just still don't approve the way the transition was made - if we got to Python 3 through progressive deprecation and evolution via python 2.8 and 2.9, we wouldn't be where we are now.
- scrollaway 10y ago> if we got to Python 3 through progressive deprecation and evolution via python 2.8 and 2.9, we wouldn't be where we are now. You mean exactly like Django's progressive deprecation and evolution that you're complaining about in your parent post?
- coldtea 10y agoNo, he means language level progressive deprecation and evolution, as opposed to an abrupt jump to a changed 3 from 2.
- scrollaway 10y agoThe Django project has added Python 3 compatibility in Django 1.5 as experimental. It remained experimental in 1.6. It became supported in 1.7. They announced around that time that Django 2.0 would only support Python 3. Then, they released a first 3.x compatible LTS with Django 1.8. Then they released 1.9, compatible with 3.4 and 3.5. They then release 1.10. And they are releasing 1.11 soon as an LTS, which they previously announced would be the last in the 1.x branch and the last to support Python 2. It will be supported for AT LEAST THREE YEARS after its released. Good lord. If the deprecation and evolution gets any more progressive, it'll compete with darwinism. And yet, alanfranzoni complains about it. And YOU COMPLAIN ABOUT IT elsewhere in the thread, saying they're "screwing their userbase" and "leaving their users in the dust". Don't you think you're being a little fricking entitled? This is an open source project and they're doing quite literally everything right.
- throwawayish 10y agoI couldn't agree more. This transition and their release management in general has been handled excellently for years. Anyone complaining here is quite literally whining.
- rbanffy 10y agoYou 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.
- billoday 10y agoYou 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 python2 code.
- rbanffy 10y agoThey 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.
- billoday 10y agoThe truth is, it's Python. I'm not looking for a great language, I'm looking for language that'll help me get work done... quickly and not give me a migraine if I have to come back to it (Perl). The 3 changes are just big enough to catch me (and every other Python programmer I've worked with) so that I can't just program, which tends to push me towards keeping it in 2.7 or switching to another language, where the similarities don't exist to pull me into bad habits. The whole mess really sours me on the language that made me love programming again.
- Al-Khwarizmi 10y agoOr if they had called Python 3 a different name, and let both branches evolve freely and compete.
- gtaylor 10y agoThis sounds like a fork. Nothing need stop someone from forking and maintaining CPython 2.x. Open source is a do-ocracy. But I doubt it'd be worth it. Python 3 is getting great traction and is a fundamentally better language.
- coldtea 10y ago>This sounds like a fork. Python 3 is already a fork.
- gtaylor 10y agoIt's a major release.
- throwawayish 10y agoPretty much the only people that are working towards splitting the community are people like you, who spread FUD and sprinkle snide, bitter and wrong remarks across threads.
- coldtea 10y agoNotice how I made a pragmatic observation (that it's already a fork), which one might agree or disagree with, and you went for name-calling about FUD, snide, bitter, "people like you", etc.
- throwawayish 10y agoThat's, like I said, my general observation from reading like a dozen comments from you just on this item. You're literally bickering on about this in pretty much every Python-related item on HN. It is very hard not to notice your comments if one frequents this site. I stand by my comment above.
- kamyarg 10y agoMaking the transition more "progressive" would just decrease the incentive of developers and companies to move even more. Ultimately, they are the ones who maintain, care for Python and have grown the community to its current size. I totally respect their decision. Even if py3 was complete useless, I would just stop using python, not complain about how they are not doing things the way I like it.
- viraptor 10y agoWhat would you do in 2.8, 2.9 that 2.6, 2.7 didn't achieve? 3.0 was released almost at the same time as 2.6, and together with 2.7 they got a lot of backported 3.x functionality. Sounds like what you're asking for.
- yen223 10y agoIf anything, the transition was too progressive. The Python ecosystem would have been better served if they killed support for Python 2 much earlier, so that we can avoid wasting time on this tired debate, and more time writing useful code
- Grue3 10y agoI think whatever goodies Django 2.x will have, they'll be backported to 1.x by somebody. At my last job they were still using Django 1.6 when I quit last year. Updating to a new version takes a lot of manhours. Rewriting the codebase in a new language (which basically what Python 2 -> Python 3 transition is) would be completely out of the question.
- shawabawa3 10y ago> Rewriting the codebase in a new language (which basically what Python 2 -> Python 3 transition is) would be completely out of the question. Not even close to rewriting in a new language. In my experience upgrading from django 1.6 to 1.7 is a bigger change than python 2 to 3
- danpalmer 10y agoYep. I've done 1.6->1.7->1.8->1.9 at my current workplace and 1.6->1.7 with Django migrations was the biggest one by a long way. The documentation for upgrades is great too.
- vegabook 10y agoPython 3 is a seriously misguided project. It's got tons of newer-to-Python fans (your HN downvoter demographic), and tons of silent-majority "real-world" users especially in scientific programming who just don't like it. I moved to 3.4 a year ago and, as a data scientist, I have to say I find nothing in 3 to be better than 2, other than the extremely marginal default float arithmetic. I may be wrong for web development etc with asyncio whatever, but for me all I get from 3 is Unicode and xrange cruft that simply complicates my code for zero benefit. Personally am hoping that something new emerges that will take over from Python altogether as the default in data science, or that some big entity will sponsor a fork of 2.7 to shutdown this ridiculous "eol" dictatorship.
- viraptor 10y agoSo what you're saying is that Python 3 changed some small stuff that you see no benefits in, but moved a year ago, and you're now on Py 3.4. And because of that small no-benefit update, you want to move to completely different language that will start with: no scientific libraries, no community, and will likely require rewrite of everything you work with? Where's the benefit in doing that?
- deleted 10y ago[deleted]
- vegabook 10y agothe benefit is that all the wasted energy that went into all the useless 3.x stuff, could have been spent on advancing Python's speed, multicore, or GPU programming capabilities. Instead, for the single use case where Python is clearly the dominant language (for pure network-effect reasons), namely scientific programming, we have been at a standstill for years. In other words, under current stewardship, Python is going down a path where I don't see a long term future for it in my domain, and therefore, I am looking elsewhere already. I am also almost 100% certain that if scientific programmers leave Python, the language will stall, and the current 3.x pushers are dangerously looking a gift horse in the mouth. This is particularly true given that Go is rapidly eating Python's lunch in all non-science use cases.
- samwillis 10y agoI disagree, I think Django dropping support for 2 will actually push more open source projects to do the same. This will create the momentum and incentive necessary to nudge people over the edge and upgrade. There is an awful lot of hyperbole around the difficulty of upgrading from python 2 to 3, however with the latest changes in 2.7 and 3.6 the gap isn't as big as you expect. I converted our (admittedly not massive) 35,000loc Django project from 2 to 3 in about four hours, starting with with 2to3 tool then working though test failures it wasn't nearly as bad as I was expecting. Most of the issues were as I expected around the new string handling, but as soon as something broke, I knew before looking at the code what the problem was.
- danpalmer 10y agoAgreed. We've got a ~100k line Django project and I'm fairly confident it won't be more than a day or so of work to migrate. The only thing keeping us on 2.x is our dependencies most of which already have Python 3 support so it's really just a matter of us upgrading dependencies.
- mrfusion 10y agoOne day sounds impressive. What's your strategy?
- danpalmer 10y ago- Most of it can be automated with 2to3. - We already have linting in place that encourages Python 3 compatibility (and have no linter warnings on master). - We already use six for moved modules. - And we have a test suite that is not exhaustive, but 'good enough' to find the common patterns of bug for this kind of thing. - We also have a style-guide that favours the ability to find-replace project wide with relative safety. - We don't have much 'math heavy' code that will fail with the changes in operations in Python 3. - We already use unicode for the majority of strings. - We don't use my Python networking code directly, it's mostly just Requests (so a lot of the moved modules don't apply). This excludes the upgrading of dependencies, I think that's where we will spend more time, but the actual Python 3 transition for the main codebase should be ok, mostly because of the effort we've put into style and review since it started ~5 years ago.
- viraptor 10y ago> forces [...] to offer two versions [...] the same is happening for Django! That's not what the announcement is about. Django worked with python 3.x for a long time already. Now they're actually going to drop 2.7, so back to one supported version.
- ageofwant 10y agoNo core Python dev will support Python 2 after EOL. Some corps may continue to do so sure, just like there are Java 1.4 codebases still in production. I will work on a Java 1.4 codebase if you are prepared to pay for my accrued personal obsolesce as well. If your Java 1.4 job is the last job I'll do it has to pay for the next 15 years lost income as well. The same will go for Python 2.
- JCzynski 10y agoEOL was extended once. Why not twice? Why not every time Mickey Mouse is about to enter the public domain?
- xrange 10y ago>Some corps may continue to do so https://www.naftaliharris.com/blog/why-making-python-2.8/ https://www.naftaliharris.com/blog/why-making-python-2.8/ https://news.ycombinator.com/item?id=13144713 https://news.ycombinator.com/item?id=13144713
- stefantalpalaru 10y ago> No core Python dev will support Python 2 after EOL. You say it like it's a bad thing. Core Python devs are terrible programmers. I'm personally rooting for this fork now: https://github.com/naftaliharris/placeholder https://github.com/naftaliharris/placeholder - it's what Python3 should have been.
- jbmorgado 10y agoSincerely, the only "poor evolution strategy" from Python developer team was that they continued to support Python 2 long after its initial expire date after announcing the Python 3 roadmap. The support should have been cut a long time ago and now we wouldn't be having this discussion.