Live data from Hacker News

Extend Python 2.7 life till 2020

hg.python.org

261–270 of 286 posts

Re: Extend Python 2.7 life till 2020

#261
post #72

Earlier quoted context omitted.

Where do you get that many libraries that aren't converted? Most, at least the ones still under development, are.

You guys can downvote me all you want for bringing up an uncomfortable truth, but the fact is that from the outside, it looks like there's still a huge schism in the Python community and that it's not at all obvious that users should be jumping into the 3.x tree to get miscellaneous work done. As far as specifics, one of the first tasks I wanted to perform was to survey some of the NoSQL databases with some test case…

Personally, I think the larger problem is package management. Most of my python projects use lots external libraries that often conflicting binaries. I find that difficult to manage as it is.

Python is the least special component in the mix and I would be very reluctant to have to upgrade everything just for 3.x.

Re: Extend Python 2.7 life till 2020

#262

Earlier quoted context omitted.

In case the grandparent doesn't realize, 2.x has a print statement not function.

I meant function as in functionality. This is really pointless nitpicking.

Normally I would agree with you - but one of the epic changes between 2.x and 3.x python, was the change of print from a statement to a function - so, in this case, it's not so much nitpicking as pointing out one of the major changes between the two streams of python.

Re: Extend Python 2.7 life till 2020

#263
post #222

There are a lot of comments here from people who aren't on the python-dev list and don't really understand what this diff actually means. The core developers are not required to maintain 2.7 post-2015, and most of them won't be involved in it. That part hasn't changed. What is happening is that Red Hat is preparing to cut a RHEL 7 release, which AFAIK depending on how much you pay them they support for 13 years. So t…

> which AFAIK depending on how much you pay them they support for 13 years 10 years actually. This is a common misconception from those who do not read the lifecycle page carefully.

It's 13 years with the Extended Life Phase and the Extended Life Cycle Support subscription which provide security fixes https://access.redhat.com/site/support/policy/updates/errata...

Re: Extend Python 2.7 life till 2020

#264
post #50
post #42

Earlier quoted context omitted.

That's not a valid reason to avoid making the switch. A big backlog of code that you can't afford to port is valid; it's a business issue. But you? This is a tool of your trade, just do the research.

"Tool of your trade": I have no use of python 3, nor do I have any use for Scala, Perl, or whatever. These could all be considered "tools of my trade". I rarely write anything high language besides small scripts. Python 2 does the job. If I ever were to need functionality of another language, great, it's fun to learn something new. Our time is limited and we must prioritize. Sadly we cannot invest time to learn every…

@a1a I apologize, I was a jerk yesterday. I definitely dropped my forum manners. Not ok!

Just so you do know what the story is with python3: It's mostly a move to proper unicode support (which couldn't be done without breaking backwards compat) but it's a relatively minor change for most code. You'll definitely run into some library support issues, but they should be few and getting fewer. It shouldn't be terrible, and I'd encourage you to do it just for the sake of Guido and the python community, because this transition has been a bit of a burden for them.

Re: Extend Python 2.7 life till 2020

#265

Earlier quoted context omitted.

It is easier. On the other hand, Java doesn't drop any deprecated API's either, so static types may not help as much as you think. Migration still has to happen before dropping something. It seems to be that automatically upgrading your code, even with "go fix", is staying on the hamster wheel. Using a stable language like Python 2.7 is getting off the hamster wheel, since the "hipster" programmers (including me, som…

I would go one step further: in an effort to maintain binary compatibility, Java ended up trying to do "type erasure with generics", which in my mind is a horrible wart. C# went through the same changes, and built two different libraries for collections to accommodate it. What I am saying is that it wasn't much prettier in those cases, and golang might not have had the same type of issues yet, but it just hasn't been…

Well, Go isn't Java. They are two different languages.

The Java designers wanted jars to be runnable by any virtual machine, ever. This meant preserving some pretty old and nasty hacks (like erasure for generics) to allow old jars to work with new virtual machines.

With Go, you would just recompile and that would be it. Go doesn't even support loadable modules yet (although it's coming soon), so they can do whatever they want with compat. It's unlikely they'll make the same mistakes Java did because they are not blinded by the "write once, run anywhere" ideology.

Re: Extend Python 2.7 life till 2020

#266

Earlier quoted context omitted.

" why bother learning Python 3?" Unicode And of course, you'll move from a platform that's shutting down to one that's evolving Really, it's worth it.

Unicode works perfectly fine on 2.x.

The 2.x API is incredibly and almost unusably confusing to someone who hasn't already puzzled out the right ways to use it from the many wrong ways that are easier to find.

But that's OK, because 2.7 is exactly for the people who have to maintain old 2.x projects and people who never want Python to change again (and will just move to Rust or something soon anyway, instead of learning and using features in Python 3).

Re: Extend Python 2.7 life till 2020

#267
post #168

Earlier quoted context omitted.

No new features, no improvements, nothing -- just the same language, for a decade. Am I alone in being excited by this? I am figuratively drooling over such stability.

No you are not alone. But you are minority. Majority sees the language not as a tool to solve specific problems, but as a goal, i.e. a way to chase its own tail endlessly. Hence the rudderless pursuit of new . The whole industry is in ADD mode - they moment they create something useful, they discard it and start a new quest.

Projects which never improve get replaced in a few years by new projects which did things better, and by other old projects which improved.

This is not ADD, this is not rudderless. This is preferring actively maintained and improved things over old crap that never gets fixed

Re: Extend Python 2.7 life till 2020

#268
post #115

Earlier quoted context omitted.

Hm that does sound clever. A preparser to determine what language version then invoke that interpreter. And if the 3 is so good people would switch over to usong its features only very soon. Maybe py3 just doesnt have good enough features compared to 2 for people to make the switch and shouldnr have existed in the first place? But gradually introducing changes. Now python is for all intents two languages instead of o…

It's not possible to determine the language. The extensions are the same and much of the syntax hasn't changed, and many of the backwards-incompatible differences are subtle. Python2: print(1/2 * 1000) # 0 print({b'a': 'bytes', u'a': 'text'}[b'a']) # text print(b'A'[0]) # A Python3: print(1/2 * 1000) # 500 print({b'a': 'bytes', u'a': 'text'}[b'a']) # bytes print(b'A'[0]) # 65 And the merits of doing a backwards-incom…

A PEP saying "put a python2 shebang at the top to invoke python2 mode" could make this a solved problem.

Re: Extend Python 2.7 life till 2020

#269
post #38

Wow I'm very disappointed. I keep making the effort to transition more to 3, but am frustrated to see so many dependencies only work with 2.7, and thus maintain both libraries. I am tired of this limbo.

Back in the python2-only days, if a library failed to work because of bitrot and lack of maintenance, you wouldn't call that limbo. You'd just replace it. And if you failed to find any library to do something, you'd just write it or do without.

Re: Extend Python 2.7 life till 2020

#270
post #71

For reference's sake: Python 2 was released Oct. 2000 and so will have a 20-year lifetime now. http://en.wikipedia.org/wiki/Python_(programming_language)#H... Ruby 1.8, which was retired last year, had 10 years of life: https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7... Obviously, version numbers don't mean the same thing...and Ruby 1.8.x to Ruby 1.9.x (or even 2.x) seems less of a jump than 2.x to 3.x.

This seems like an advantage that Ruby's culture has over Python's. If people didn't stall so much, the process wouldn't be so slow and there wouldn't be a reason to stall any more.
Post reply on HN