Live data from Hacker News

Why I'm Making Python 2.8

naftaliharris.com

191–200 of 392 posts

Re: Why I'm Making Python 2.8

#191

People don't seem to be considering the possibility that a stagnant python 2.7 may actually be a reason to like that version of the language. I must admit it is nice to not have those oh-so-keen python developers messing with my favorite language. However, I recently had a gig working in py3. Apart from screwing up every single print statement for a long time, it was entirely drama-free, and actually pretty great. Th…

why can't print be both a function and a statement...

Re: Why I'm Making Python 2.8

#192

Earlier quoted context omitted.

That's not for the manufacturer to decide. Python 3 is like Coca Cola declaring that the New Coke is all people should drink, and stopping production of classic coke. Python 2 is still being "worn" by millions of programmers, and is what runs in the biggest installations. This includes new code written for those installations, that it's written to run in the same 2.x environment.

> That's not for the manufacturer to decide. Python 3 is like Coca Cola declaring that the New Coke is all people should drink, and stopping production of classic coke. That is within the rights of a manufacturer though. Coca Cola can continue to produce classic coke because it isn't any more or less complicated to produce than New Coke. The PSF's opinion is the new features they develop are best developed on top of…

>That is within the rights of a manufacturer though

Sure. Still bad for the consumers who want the classic Coke though.

Re: Why I'm Making Python 2.8

#193
post #190

Earlier quoted context omitted.

> Python 2.7 is outdated by Python 3.5. The fact that there is a bugfix release doesn't change that. That's just what the lead project team declared. Not what the user base asked for or wants. > 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. That's because people stopped using them organic…

> That's just what the lead project team declared. Not what the user base asked for or wants. You think they are doing it just for kicks? There are no issues with Python 2? They are also part of the user base, and they did it for a reason. > That's because people stopped using them organically. That's not the case with Python 2 -- Python 3 was declared "the new hotness" with a decree from above. Well, I for instance…

>You think they are doing it just for kicks?

Yes. From a false sense of "we know better than you what's good for you". And also from not being connected to actual business and end user needs.

>There are no issues with Python 2?

That's irrelevant. There are issues with Python 3. Besides, the issues that Python 3 fixed over 2 are marginal at best and most could be retroffited to 2.x (as this 2.8 release proves). Nothing earth shattering to make the transition worth it.

>Nobody is really forcing you to not use Python 2, just as nobody is forcing you not to use FORTRAN 77 or COBOL 74. It's just that the language will not evolve anymore, and as far as runtime goes, you will be on your own eventually.

It's more likely that Python will suffer from people moving to other languages (and already, first Rails and then JS have won the server side over Python big time, and JS looks poised to be more general use too), than that anything good will comes out of this "you're free to use 2.x, it just wont be updated anymore".

Re: Why I'm Making Python 2.8

#194

Earlier quoted context omitted.

> Please, do not put obsolete software on life support. Regarding adoption, it's 3.0 that's obsolete, and 2.7 that's vibrant. Even for new code (they conveniently only count totally greenfield projects, but most new code is written in fact to work with established 2.x codebases under Python 2, not as a totally greenfield project).

You keep saying things like this but numbers don't bear that out. Since we switch to Python 3.5 for new code, I can barely tolerate working in 2.7 now. It went from feeling "vibrant" to feeling "OMG this is legacy" in about a week. I would never voluntarily go back.

>You keep saying things like this but numbers don't bear that out.

What numbers? All the numbers I've seen -- official numbers from PyPY etc) tell otherwise.

Re: Why I'm Making Python 2.8

#195
Just a couple of things I want to point out here.

1. Calling it Python 2.8 is a really bad idea. If you want to fork Python in this way, great. I'm sure very few people in the community would have a problem with it if you called it Brothon or P8thon or Hackthon (could run into trouble with that one, but who knows?) or IHate3.xThon. You can call it LifeOfBrython or Snake, depending on how much you care about where the name came from.

Guido van Rossum is one of the least litigious people you can find in the open source community. When he wanted people to stop naming packages after PEPs (pep8, pep257), he didn't try to go to court and figure it out later. He talked to the maintainers of the packages and explained why he thought it was problematic [0]. I wouldn't expect a cease and desist showing up anytime soon, but it's in poor taste, and I hope you reconsider it. Python is not yours just because you are free to use it and do as you please with it. It's really stretching the concept of open source for you to unilaterally declare a collection of hacks to be a point release that's been specifically addressed and decided against by the community as a whole.

2. I have so much sympathy for people who must maintain Python 2.x applications and cannot make the business case for putting the time into porting it to Python 3. I'm in that situation myself right now, and I have been for years. I can't find a compelling argument to warrant the time so long as the 2.7.x branch is getting security updates. When the security updates stop, the move will finish.

The reality is that those of us who have been working with Python for a long time now (10+ years) have already figured out reliable workflows to get around the most lacking aspects of the language in our domains of expertise. Or we have swapped out subsystems in other languages for cases where we absolutely cannot find workarounds.

I get it. I'm in that boat. I understand that boat because I live in it.

I can even understand why this project happened. Because hacking things you love to make them better for you as an individual is the heart and soul of what makes software development so great.

What I absolutely cannot understand is why anyone (absent certain libraries needed) would start a new project on a deprecated branch of a language. And I don't understand why this is such a contentious issue specifically with Python. I don't hear any of my friends who work with C# or Go getting into arguments about how the latest version has failed or shouldn't have been rolled out. As much as Swift 3 has caused problems, I don't hear any of my iOS developer friends complaining about how that shouldn't have happened and trying to backport the good stuff into the 2.x branch. I genuinely don't understand this behavior in the Python community.

*

I do, however, suspect that it has something to do with the overall age of the community.

Using Python has always been a matter of taste and style. I get that. Python is a language that makes explicit tradeoffs between performance and style. It is no shock to me that people who learned to love the language in its older form want it to stay that way. And I say this as someone who is closer to 40 than I am 30: we older folks in the industry need to fight against the stereotype that we can't or won't learn new tricks. Yes, there's a place for battle scars and pushing back against every new flavor-of-the-month stack that rehashes old problems in new ways. But obstinately sticking with stuff simply because it's what we know does all of us who are getting on in years a huge disservice.

Getting a good gig as a software engineer in your 20s is not that difficult. Getting the same gig when you're pushing 40 and the hiring managers are still in their 20s is a lot harder. If you're making decisions to start new projects on old versions of any language, please, please, please, do all of us a favor: make sure that you are doing it for solid reasons and not simply because it's what you already know and are already comfortable with.

*

Because this post isn't long enough already, I have a second pet theory about the reluctant adopters.

Python 3 is a _great_ language. It's not the same as Python 2. It makes different tradeoffs about styles and choices of expression from what Python 2 does because these things can and should change over time.

I think that the expressive power of Python, the closeness to human language, and the ease of reading well-formed code have a lot to do with the resistance to Python 3. There are people (I'm one of them) who get really really picky about language in general. I think the Oxford comma is a necessity in almost every case. And I think people who casually omit it are stupid, shallow, non-thinking, drones who don't care about the history of language and don't care about precise meaning of words, and therefore don't care about me because they an't be arsed to toss a comma in a place that greatly clarifies meaning.

I don't actually think all of that, but I'm closer to that than I am to not caring at all.

And there are many like me. When you're dealing with a programming language with intent at its heart, people are going to take that in different ways. When you're dealing with a language that cares about whitespace and eschews braces and wants to limit brackets and just expose the pure logic of the program, people really are going to get fired up about print vs. print().

That's expected. And beautiful that so many people care that much. But as much as I lean towards prescriptivism and that rules are good for a language, even I have to admit that language evolves. But it usually evolves to be more inclusive and more expressive, not less. The really bad fights about languages in general revolve around what to include, not what to exclude. Because languages are exclusive by default.

A counterpoint to my idea above that we are all just old and lazy, is this: that we really do genuinely care, and that we care for good reasons. But something has to give. We cannot refute the evolutionary pressure. Python 3 is as necessary for modern speakers of programs as a recent edition of a dictionary is in your preferred language.

Yes, you can get by with something older, and you can even make yourself understood by most people who speak the language.

But you are limiting your ability to express your intent when you make an intentional choice to refuse to adopt what the rest of the culture around you is doing.

Aaaaaaand I'm done. Sorry for how long that was. I didn't intend that. It just sort of happened. If you read all the way to the end, let me know, and I'll upvote you.

[0]: https://github.com/PyCQA/pycodestyle/issues/466

Re: Why I'm Making Python 2.8

#196
post #169

Earlier quoted context omitted.

"Port your old code or be left behind when we cut off 2.x line" is.

Please please please explain how that is inhibiting or restraining personal freedom. Or how it is inhibiting or preventing the expression or awareness of your thoughts or desires.

>Or how it is inhibiting or preventing the expression or awareness of your thoughts or desires.

How's that difficult to parse?

It is stomping on the desire to keep my 2.x userbase AND receive updates for the language.

Re: Why I'm Making Python 2.8

#198

Earlier quoted context omitted.

> 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 writing has been officially on the wall ever since 2011 so at that point you have to admit you did choose to incur tech debt and do nothing about…

> it's mostly blackmail ("port or else you wont run on 3, and we'll stop the 2.x line"). Would you also call the RHEL life cycle a blackmail? I'm using version 5 now and the normal support ends in March 2017. My options now are "port or pay extra for extended life cycle or else my RHEL will be without security fixes". And like Python, major RHEL versions break backwards compatibility.

>Would you also call the RHEL life cycle a blackmail?

The RHEL life cycle is based on real business needs (and a real business need to balance between newer releases/features and stable environments).

Not on some decree from above that "you should use this new thing".

Re: Why I'm Making Python 2.8

#200
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…

The Python Software Foundation has an obligation to defend the trade name. If it fails to exercise it, then it can be denied in the future.

I don't expect litigation because that's not how the community rolls. I expect a polite message from gvr to the author asking to change the name.

If that fails, the PSF has no choice. It's use it or lose it.

Post reply on HN