Live data from Hacker News

Why I'm Making Python 2.8

naftaliharris.com

251–260 of 392 posts

Re: Why I'm Making Python 2.8

#251
post #211

Earlier quoted context omitted.

We detached this subthread from https://news.ycombinator.com/item?id=13145121 and marked it off-topic.

Why? I've explained my reasoning for linking to it and several people agree with why I've linked to it. Maybe you don't agree? I guess that's your right as one of the moderators... I really am starting to wonder if you are seeing a different XKCD comic to me, or maybe I'm being gas lighted by HN.

We sometimes detach threads that users have already flagkilled when they don't bring new information to a discussion, since we're all here to learn and memes and clichés can get in the way of that. "Obligatory xkcd", especially the standards one, is as predictable as anything here.

Re: Why I'm Making Python 2.8

#252
post #158

Earlier quoted context omitted.

If you have several large software products rolled out and churning away at hundreds of customer sites, moving from Python 2.x all the way to 2.7 alone is a slow and tedious process of tests and deliberations. And we're still not talking about going all the way to 3.x which breaks things in even more new and exciting ways. So scoff all you want, but Python 2.x isn't going away that soon.

If moving to a 2010 version of your programming language is slow and tedious you're doing something very wrong. In the Java world (conservative and slow-moving) JRE 7 (2011) is considered the absolute minimum, and if you're not targeting JRE 8 (2014) you have to have a very good reason.

I think this is an inherent problem with dynamically typed languages. There are no reliable refactoring tools so even the slightest non compatible change can be lurking anywhere for years. And with things like meta programming, monkey patching and relying on private members, even changes that are supposed to be backwards compatible might end up to not be.

Re: Why I'm Making Python 2.8

#253
post #37

Earlier quoted context omitted.

What makes something obsolete in your eyes then? Just because some people want A to replace B, that makes B obsolete? For reference, Oxford dictionaries define (..."define"? are multiple dictionaries involved here?) "obsolete" as: 1. no longer produced or used; out of date. Clearly Python 2.7 is in widespread use, and version 2.7.12 came out just a few months ago, so it's neither "no longer produced" nor "no longer u…

Python 2.7 is outdated by Python 3.5. The fact that there is a bugfix release doesn't change that. I mean look at other things. You can still program in C 89 or FORTRAN 77 or COBOL 74 (and no doubt there is somebody still supporting compilers and runtimes for those), but they are all obsolete standards. Addendum: I think for standards like programming language semantics (which in case of Python is directly embodied i…

Thanks for bringing up Fortran 77. Lots of F77 code is in use today through R and SciPy bindings etc. -- millions of users every day, thousands of compilations every day. Just because new code is not written in it, it is very much in use, nobody wants to rewrite solid code that has stood the test of time.

The word you are looking for is "deprecated", not obsolete.

Re: Why I'm Making Python 2.8

#254

What another load of crap. Call it something else but this isn't Python. I'd never use this because it's not official. Who knows if or how long it'd be supported for or if any backdoors would/could be introduced. I've scheduled time this year for my teams project to update to Python 3. It's expensive in the short term but in the long term we get continued support and new features which is a huge win.

Do you trust PyPy? It's not official either.

Re: Why I'm Making Python 2.8

#255

Earlier quoted context omitted.

The intention is to make the order guaranteed in 3.7 or 3.8, AIUI. There was some desire to prove the new implementation before guaranteeing its behaviours (i.e., in the worst case, if it turned out to be broken, they could revert to the 3.5 code and it would be valid).

No it is in 3.6 already! It used to be not guaranteed. https://mail.python.org/pipermail/python-dev/2016-September/... But it is insertion order indeed, not sorting order.

The behaviour is there in CPython, yes. But the language documentation doesn't, deliberately.

Re: Why I'm Making Python 2.8

#256
post #72

Earlier quoted context omitted.

This approach could not have worked for modernizing python. The whole point of the Python 3 thing was to be able to remove warts in the language that could not have been fixed without breaking backwards compatibility. One core part of this is unicode support -- Python had a horrible story for international text before this. The fact that there are some parts of "modern" Python which could have been implemented in Pyt…

Python 3 fixes no fundamental issues with python 2 and introduced far more warts than it removed. GIL is still there, crummy runtime is still there and unicode is now an even greater mess. I really wonder how many people who bang on about unicode actually have a good grasp of unicode and text processing because python3's unicode design is obviously terrible. I can now access or count code points in O(1) (neither of w…

> I can now access or count code points in O(1) (neither of which is in any way useful)

Oh, yeah, I agree that Python's unicode model isn't great. I like Ruby's, and Swift has it's own cool thing going where it's very explicit about the uselessness of code points.

However, I think that Python 3 having some form of default unicode support is way better than what Python 2 had. It could be improved (backwards-compatibly too!), but it passes my minimum bar for a "modern" language's text story.

Re: Why I'm Making Python 2.8

#257
post #33

> And the majority of Python code written does not run under any of the 3.x interpreters. This makes it harder for its users to be productive. What a load of bollocks. For new projects this only matters if libraries aren't ported, which they are for the most part. For old projects, either you're in a situation where you can spend time porting your code to Python 3, or you don't; but as TFA mentioned pep-404, the writ…

That has been official since 2011, but even today you may need some lib only available in Python 2.x and thus may need to start a new project in 2.7. I started several python projects since 2011 knowing that it was a dead end, but my hands were tied. At the time there was not even a working wsgi spec, and no web frameworks for 3.x, and the first ones has an awful performance (2.7 is bad enough).

Only recently 3.x has become a viable alternative. I for one welcome this 2.8 fork.

Re: Why I'm Making Python 2.8

#258
post #251

Earlier quoted context omitted.

Why? I've explained my reasoning for linking to it and several people agree with why I've linked to it. Maybe you don't agree? I guess that's your right as one of the moderators... I really am starting to wonder if you are seeing a different XKCD comic to me, or maybe I'm being gas lighted by HN.

We sometimes detach threads that users have already flagkilled when they don't bring new information to a discussion, since we're all here to learn and memes and clichés can get in the way of that. "Obligatory xkcd", especially the standards one, is as predictable as anything here.

Okay, fair enough. It's not off topic though is it. And thanks for explaining.

Re: Why I'm Making Python 2.8

#259
post #104

Earlier quoted context omitted.

I wish I could downvote. I specifically said I hate the tuple unpacking syntax change in lambdas . That's where I used it so much to begin with, not in defs! I obviously can't put statements like that in lambdas, and until now I didn't need to do that to make my code readable. Now I have to name all of my lambdas just to make this syntax work, which is nonsense. It used to be there and it worked perfectly fine .

Why would you want to downvote somebody trying to help you? In any case, I think I see your problem. You are not the sole user of Python language. There are features that other people like (such as using '*' in unpacking), and so features you like are weighted against their use cases, and a reasonable compromise is made. And frankly, I think if you like to use lambdas that much, you really want to program in a langua…

> In any case, I think I see your problem. You are not the sole user of Python language.

I'm glad I'm not. Otherwise I probably wouldn't be using it either. Not sure how that is my "problem".

> There are features that other people like (such as using [asterisk] in unpacking), and so features you like are weighted against their use cases, and a reasonable compromise is made.

I like that [asterisk] syntax too.

> And frankly, I think if you like to use lambdas that much, you really want to program in a language where everything is an expression, such as Lisp or Haskell.

Or I could just keep using Python 2.7 which works just fine, and not move to version 3 where I'm not welcome.

Re: Why I'm Making Python 2.8

#260

Earlier quoted context omitted.

not entirely true - http://python-future.org/unicode_literals.html it's not 100% seamless, but its almost there.

> Changing to `unicode_literals` will likely introduce regressions on Python 2 that require an initial investment of time to find and fix. The APIs may be changed in subtle ways that are not immediately obvious. Unless you're willing to put in the time and energy to extensively test, this is basically a recipe for disaster. You're basically paying at least 80% of the cost of a full Py2 -> Py3 port (since looking for…

Being able to change things in one part of the code base at the time -- or one feature/data field at the time, is a HUGE thing. For production systems you just cannot put the backlog on pause for a month or two while porting. You can however incrementally fix over the course of some years.
Post reply on HN