8 ms·
I make software that people can write plugins for in Python. After months, years of struggle we finally dropped support for Python 2 because our small team coul
by yoz-y 10y ago
I make software that people can write plugins for in Python. After months, years of struggle we finally dropped support for Python 2 because our small team could not bear the overhead of maintaining two bindings. We work a lot with researchers in signal processing domain and we have hard time as it is to get people to use Python 3. Please, do not put obsolete software on life support.
- wfunction 10y ago> Please, do not put obsolete software on life support. Downvoting because Python 2 is anything but obsolete. People still love using it.
- js8 10y agoI am glad that you explain why you downvote, but I disagree. The fact that people love and use something doesn't mean it cannot be obsolete. At work, I care about more than 35 years old software. It is obsolete (it's written in mainframe SAS with 3270 green screens and some assembly), but people still love using it, mainly because there is no good alternative and it does the job very well.
- wfunction 10y agoWhat 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 used" nor "out of date"...
- js8 10y agoPython 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.
- deleted 10y ago[deleted]
- wfunction 10y ago> 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?!
- js8 10y ago> 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 https://www.youtube.com/watch?v=npjOSLCR2hE
- wfunction 10y ago>> 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.
- underyx 10y agoI'd argue Python 2.7 counts as no longer produced. The 2.7.x releases with their bugfixes are akin to an electronics company still honoring the warranty of tape recorders and still repairing them. That doesn't mean tape recorders are not obsolete, especially since the company is not making them anymore. I consider the parallel 'making software' to be the process of feature proposal -> patch -> review -> merge
- wfunction 10y agoIn your eyes is anything that isn't getting more and more features added every few months necessarily obsolete? Can't something just become mature and fulfill its goals at some point? Do you consider T-shirts to be obsolete too? If they kept adding more and more attachments ("features") to your clothes every few months to prevent them from becoming "obsolete" you'd be walking around in really heavy clothing...
- underyx 10y agoTape recorders are not still being made; verdict: obsolete T-shirts are still being made; verdict: not obsolete Python 2 is not still being made; verdict: obsolete
- wfunction 10y agoPython 2 is still being "made" in the sense you consider T-shirts are still being made, though. it's still provided for download, and people are downloading it and using it, and even using it for new things. Heck, it's even getting bugfixes which is a plus. It's just not getting features added, and it happens to be software so reproducing it happens to be trivial compared to "hardware" like clothing. So, do your comparisons correctly. No matter how much you insist, Python 2 just isn't dead (or obsolete, etc.). Lack of new features doesn't imply obsolete.
- actsasbuffoon 10y agoYou can still download the operating system for an Amiga, yet the Amiga is obsolete (despite diehards still using 31 year old computers). Python 2 is no longer being actively developed. It receives bug fixes, and even those are scheduled to stop before too much longer. The fact that people are using Python 2 means that it's not dead, but that doesn't mean it isn't obsolete. Think of it this way. You need a library to solve some problem, and you find one on Github. The project hasn't received any major updates in 3 years. Some people have submitted pull requests, and a few of them have even been merged, but it's clear that the maintainers are focused on other projects these days. Is that an indication that this project is simply mature and no further work is required? Or could it indicate that the maintainers want to work on other things, and this is not a priority for them any longer? Saying that Python 2 is obsolete isn't an insult. Python 2 is popular, and loved by many, many people. It has been adopted as a teaching language by many schools, has inspired multitudes of people to learn to code, and has achieved prominence in data science, machine learning, and scientific computing. It also happens to be at the end of its lifecycle, development has moved on to Python 3, and the developers don't have much interest in maintaining Python 2 any longer. That doesn't diminish the accomplishments of Python 2 or the people who love it. However, it does mean that the label fits.
- coddingtonbear 10y agoPeople in China were, until just a few years ago, still using Windows XP, too, though.
- wfunction 10y agoYeah, so for them it wasn't obsolete. For other communities it was. I don't see the problem. Obviously obsoleteness (word?) isn't a property of the product; it depends on the context (how much it's used, what else is available, how much the alternatives are used, etc... however you want to weight them).
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- AnonymousPlanet 10y agoIf 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.
- dtech 10y agoIf 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.
- js8 10y ago> If moving to a 2010 version of your programming language is slow and tedious you're doing something very wrong. You mean like, dealing with strings and Unicode? That's usually the case why people have trouble migrating to Python 3.
- luhn 10y agoThe 2010 version he's referring to is Python 2.7.
- Too 10y agoI 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.
- AnonymousPlanet 10y agoTry to move with half a million LoC of dynamically typed code with a handful of developers with not a single update breaking for any customer and I will be impressed.
- SeanDav 10y ago> "Please, do not put obsolete software on life support." The vast majority of current development out there is in python 2.x. A small minority use Python 3.x. How on earth does this make Python 2.x obsolete? This is like saying Perl 5 is obsolete, just because Perl 6 is out and completely ignore the realities of the real world use of the products.
- flaviojuvenal 10y agoPlease back your claims with data.
- SeanDav 10y agoThere are numerous metrics out there showing that Python 2.7 is far more ubiquitous than 3.x Here is one recent one: http://www.randalolson.com/2016/09/03/python-2-7-still-reigns-supreme-in-pip-installs/ http://www.randalolson.com/2016/09/03/python-2-7-still-reign... If you have counter statistics showing that Python 3.x is more popular than 2.7 I would very much like to see them.
- toyg 10y agoNice to break down FIVE 3.x versions vs TWO 2.x versions. Stack them up and let's count again.
- SeanDav 10y agook let's do that, using the first graph for Overall Python Downloads: 2.7: 10 million (M) 2.6: 0.5 M --- 3.5: 1 M 3.4: 0.750 M 3.3: 0.05 M 3.2 and 3.1 too low to make a difference. ------- So totals: Python 2.x: 10.5 M Python 3.x: 1.8 M --- Python 2.x is waaaaay ahead over 3.x
- js8 10y agoI agree, I also wish he would give actual numbers, rather than points on log chart, which are very hard to estimate by eye. But to be fair, even with that, I doubt you would get more than 30% of Python 3 users. Which is kinda in line with other surveys, such as the one from JetBrains. (It's probably a good guess that users of Python applications are even more conservative in upgrading than developers of Python applications.)
- coldtea 10y ago>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).
- kstrauser 10y agoYou 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.
- coldtea 10y ago>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.
- RedCrowbar 10y agohttps://twitter.com/vlasovskikh/status/801720613312364544 https://twitter.com/vlasovskikh/status/801720613312364544
- godelski 10y agoThere is a clear selection bias here, which is revealed in the first response (unless that was what you're pointing people towards). IDEs are a lot more common on Windows, which has the best adoption rate. The data from the two sources in that comment point towards a large majority of users still using 2.7, which agrees with my experience (which is in the scientific community). The number one reason being that there is no incentive. There is a lot of that attitude is common, "if it isn't broken, don't fix it". At this point we need to recognize that python2.7 isn't going to die anytime soon, unless there is a drastic change.
- scriptproof 10y agoThere is nothing bad in making a newer version of an older language. But I agree they must use a more distinctive name.
- jprzybyl 10y agoObsolete is a funny word to use. In this case, it would mean that Python 2 is in good working order, but is no longer wanted. That's bound for a flame war, because: - There is a community that wants it (largely enterprise). - The Python team does not want it. A less controversial word is deprecated - the Python team is discouraging use of Python 2, but not prohibiting it's use or development. That's fair, and if you read this page: https://wiki.python.org/moin/Python2orPython3 https://wiki.python.org/moin/Python2orPython3 they are not very opinionated about it, largely saying "Use 3, unless you can't, then use 2 and start trying to migrate, unless you can't, then just use 2." I will say, not to give somebody a bad day but, 2.8 seems like a bad idea. Currently python's development has still largely been a straight line, which is good for transitioning, but 2.8 would cause a fork. It would give a lot of people a short-term win for a long-term lose. Better not to tempt people.
- yoz-y 10y agoObsolete was a wrong word to use, I admit that. But from an integrator's perspective supporting both versions is a mess. The problem is that the interpreter has the same name (python), the libraries export the same symbols (well, same names, different signatures for extra fun) etc. Like you said, Python team sees the 3.x series as the successor AND as a replacement for Python 2.x. They were never meant to exist one beside the other (or, there was no thought put into this before the release). From my perspective, giving people the choice between 2 or 3 will only give us problems down the road, which is why I vehemently discourage it.
- jprzybyl 10y agoAnd yet a transition period is needed. I wonder what about this made this difficult. Was it because it's a language interpreter? Libraries have this problem sometimes, but not as much. (I never hear of issues with gstreamer between 0.10 and 1.0, for example.) Maybe it was just that a binary called python existed? Maybe we should have just said "screw it, python means python2, end of story." Don't know. What would you have preferred?
- 10y ago