News for hackers. Stuff that matters.
Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @06:15AM (#13145150)
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 in the C implementation), "obsolete" means there is a new standard by some official body (say, the developer of the old standard) that addresses shortcomings of the old standard. So "out of date" is the fitting equivalent of "obsolete" from the Oxford definition.

Re:Why I'm Making Python 2.8 by coldtea on Saturday December 10, 2016 @09:49AM (#13145846)
>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 organically. That's not the case with Python 2 -- Python 3 was declared "the new hotness" with a decree from above.

It's like as if the W3C comes out with some incompatible HTML NG on their own and says that HMTL 5 is "end of line", giving billions of webpages the middle finger.

Even worse, it's also as if HTML NG only had some marginal improvements over HTML 5, and was otherwise the same.

Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @11:56AM (#13146518)
> 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 stopped using Python 2 when Python 3 came out, if it was possible for me to do so (I had all the libraries I needed). I understand that many people can't do it, but people are organically moving from Python 2 to Python 3, not the other way around.

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 like as if the W3C comes out with some incompatible HTML NG on their own and says that HMTL 5 is "end of line", giving billions of webpages the middle finger.

I think I already addressed this in my other comments.

Re:Why I'm Making Python 2.8 by coldtea on Saturday December 10, 2016 @12:04PM (#13146558)
>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 by js8 on Saturday December 10, 2016 @01:18PM (#13146993)
> And also from not being connected to actual business and end user needs.

I am not really personally bothered by Python 3 being incompatible (with that one Jython exception that I already mentioned). But I would like to point out the comment https://news.ycombinator.com/item?id=13146127, I think you're the one who is wrong here.

> It's more likely that Python will suffer from people moving to other languages

Unlikely. Rails are probably going out of fashion. Javascript is a terrible language, which only saving grace is a decent support in browsers. I am not sure for what other reason, choosing a language today, I would choose Javascript over Python 3.

So people moving from Python 2 are most likely to end up with Python 3, I don't really see compelling alternative for them (unless they are going to something more functional like Clojure or Haskell or Scala, but that's entirely different discussion; for example I like Python a lot but I feel pure functional is where the future is, I find the imperative programming quite annoying these days, I would prefer Haskell, but frankly, I am not nearly as productive in it as I am in Python, because Python's focus on usability is very hard to match by any language).

On the other hand, I think Python 3 will actually gain in science and data analysis thanks to things like @ operator for matrix multiplication.

Re:Why I'm Making Python 2.8 by armitron on Saturday December 10, 2016 @03:26PM (#13147718)
Go and Julia are already reaping the benefits.

I see no future for Python be that 2 or 3. It's not great at anything, but projects a veneer of friendliness (that one should quickly outgrow) on top of a pile of bad implementation decisions and terrible design.

Its popularity is based on superficial attributes rather than solid foundations. Eventually, the entire ecosystem will collapse and the masses will flood to the next attractor.

Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @04:16PM (#13147958)
Julia can be a good competitor to Python, but far in the future. Now it's just not there yet.

Go is interesting, but really a different (and perhaps smaller) use case. What, for instance, I do in Python? That little one-off script that converts one thing to another or calculates something - I am not sure why I would even bother thinking about Go.

I have no doubt that at some point, Python will be replaced by something. But I don't think it will be any of the languages that are currently in widespread use. Heck, C is also not based on solid foundations (I mean like type theory or something), and it wasn't fully replaced yet.

Re:Why I'm Making Python 2.8 by xamuel on Saturday December 10, 2016 @05:57PM (#13148384)
>C is also not based on solid foundations

C is based on the solidest possible foundation: the actual hardware CPU.

Re:Why I'm Making Python 2.8 by Thiez on Sunday December 11, 2016 @04:34PM (#13153424)
The C abstract machine doesn't have that much in common with any actual hardware. I suppose it sort-of resembled the PDP-11 once.
Re:Why I'm Making Python 2.8 by dekhn on Wednesday December 14, 2016 @01:02PM (#13178129)
C does not define an abstract machine. That's the runtime implementation's job.
Re:Why I'm Making Python 2.8 by statsmatscats on Saturday December 10, 2016 @08:26PM (#13149051)
What's wrong with Julia? 1.0 should be coming out in a bit less than a year.
Re:Why I'm Making Python 2.8 by AlexeyBrin on Saturday December 10, 2016 @09:23AM (#13145746)
> 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.

The situation with C89 and Fortran 77 is completely different than what you see today with Python 2 vs Python 3. For 99.9999% of C89 and Fortran 77 code you can build the old code with new C and Fortran compilers and use it from today's standards. You can take a piece of code written 30 years ago, recompile it and it usually works.

Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @11:41AM (#13146435)
I don't disagree it is different. My argument was that a new release of compiler for an obsolete standard doesn't cause the standard not to be obsolete.

I am pretty sure there is theoretical way to run Python 2 code alongside Python 3 code, but they simply decided it's not worth the effort.

Edit: I think historically Python 2/3 divide is more akin to Maclisp/Common Lisp divide, but in the latter, the situation was even more complicated. But I doubt you can just take Maclisp code and run it on Common Lisp implementation, despite that fact that it was meant as a successor.

Re:Why I'm Making Python 2.8 by dagss on Saturday December 10, 2016 @02:53PM (#13147548)
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 by wfunction on Saturday December 10, 2016 @06:53AM (#13145243)
> Addendum: I think for standards like programming language semantics (which in case of Python is directly embodied in the C implementation), "obsolete" means there is a new standard by some official body (say, the developer of the old standard) that addresses shortcomings of the old standard.

Really? So even if no one ever uses it, it still renders the old one obsolete?!

Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @07:14AM (#13145312)
> So even if no one ever uses it, it still renders the old one obsolete?!

This is a strawman, because I don't think this ever happens (feel free to give an example). There will always be people who try to use new standard; they may abandon it later, but they will at least try to use it.

In any case, this is not really relevant to Python 3, which is used plenty and more and more every day.

And your insistence that Python 2.7 is not dead really reminds me of this sketch: https://www.youtube.com/watch?v=npjOSLCR2hE

Re:Why I'm Making Python 2.8 by wfunction on Saturday December 10, 2016 @07:41AM (#13145405)
>> So even if no one ever uses it, it still renders the old one obsolete?!

> This is a strawman, because I don't think this ever happens (feel free to give an example). There will always be people who try to use new standard; they may abandon it later, but they will at least try to use it.

...I thought it was obvious I didn't mean the case where literally NO ONE was using it, but apparently it wasn't. Sorry. My point was, if it doesn't catch on, then does it still render what came before it obsolete? Is it only about time and whether it fixes some things from before? Not about whether it's actually used, or whether it introduces other problems, or whether the previous technology is still in widespread use, or a million other factors? Really?

As for Python 3 being used and more every day, yes, I never claimed it was obsolete or dead or anything else. I'm just saying Python 2.7 is being used too, and hence it's not obsolete either as you seem to think. You claimed it was, so I asked for your definition of the term. You're rejecting the standard one and you still haven't given me one that you're willing to apply to things other than Python. Not to mention I don't see why software deserves special treatment for the word's definition here.

Re:Why I'm Making Python 2.8 by js8 on Saturday December 10, 2016 @08:04AM (#13145469)
I don't think this is going to be a productive discussion, so this is my last comment on the matter.

I already gave you a definition of what it means to be obsolete for standards (such as specifications of programming languages).

In general, an old standard will become obsolete once the new standard (that is supposed to replace it) is finalized (for example, in RFCs, they explicitly say that). At that point, there are probably no serious users of the new standard yet, so the actual usage doesn't matter.

Of course a standard can be de facto rejected by people abandoning it instead of accepting it. Then usually there will either be another standard that obsoletes the old one again (as was a case with XHTML and HTML 5), or people will move on entirely to something else; in either case, the old standard will remain obsolete.

Re:Why I'm Making Python 2.8 by ubernostrum on Saturday December 10, 2016 @07:24AM (#13145345)
You should be aware that trying to badger people with strict adherence to an arbitrarily-chosen definition of a term as a way to avoid countering their arguments does not make you look intelligent, does not make you look well-qualified to argue the topic, and does not make you look like you're winning the argument. Resorting to technical haranguing about the definition of a term typically, in fact, gives the appearance of someone who does not have an argument to make and is searching for any way to try to salvage a declaration of victory.

Just so you know.

Re:Why I'm Making Python 2.8 by wfunction on Saturday December 10, 2016 @07:51AM (#13145433)
I'm not trying to make anything or anyone "look" any particular way. I'm trying to present an argument against the undeserved misuse of a label that carries a negative connotation and that is carelessly thrown around in this industry far too much in order to dismiss technologies people don't consider smoking hot enough for their tastes.

How in the world was my definition "arbitrarily-chosen"? I literally chose definition #1 on Oxford English dictionaries. That's arbitrary?!

[dead]
Re:Why I'm Making Python 2.8 by nindalf on Saturday December 10, 2016 @09:14AM (#13145714)
> write so well

I disagree. He uses complicated words where simple ones would do and other words that are redundant. For example, read his sentence after removing "typically, in fact,". It conveys the same meaning but sounds less pretentious.

Re:Why I'm Making Python 2.8 by wfunction on Saturday December 10, 2016 @03:50PM (#13147827)
I thought the two additional "o"s that you missed indicated sarcasm.