8 ms·
Cool. I love Python, but it's really going to be a decade before this interpreter is used in production by anyone.
by gangster_dave 13y ago
Cool. I love Python, but it's really going to be a decade before this interpreter is used in production by anyone.
- broodbucket 13y agoPython 3 came out in 2008. You're saying 16 years post-release until a moderately sized change (the majority of which is regarded as improvements) to a language is used in production. That's totally bonkers.
- levosmetalo 13y agoAnd people complain about slow Java upgrade cycles ;)
- natmaster 13y agoJava doesn't release anything new for 8 years. Whereas in python world some people don't upgrade for 8 years.
- pjmlp 13y agoStill better than 13 years for C++11 or having to wait around 6 years for the availability across all major compilers of what might be C++17 (looking at you modules).
- deong 13y agoI'm not sure it is. With C++, you can just start to work. There's no one saying "C++-11 is completely different and not at all compatible with the previous version, so you'll need to port all your existing code. Oh, and we're not going to support the old version anymore. Except we sort of will. But not. Kind of." I like both languages actually, and I use python quite a bit, but holy crap has python 3 been a train wreck. C++ moves slowly, but predictably. Python has two active versions: one you're not supposed to use and one you can't.
- hacman 13y agoI have heard Stroustrup speak and he mentioned multiple times how important it is to maintain compatibility with all existing code in between language versions. Say what you want about C++, but I think they have the right approach. If you are the steward of such a fundamental project, it is definitely in your users' (and therefore your project's) best interest to keep everything that exists working. It's just not worth the pain to make trivial changes in the name of aesthetics or "usability" that break every single hello world program (making print a function instead of a statement) or to change how the division operator works for your millions of existing users to save some initial confusion for hypothetical potential users. C++ may have become a bit unwieldy as a result of the combination of this policy and the focus on adding new features, but developers working on existing code bases can continue to develop happily ignoring as much of C++11 as they like without the concern that the plug will be pulled in their platform some time soon. As they decide to adopt the new features, they can, based in the merits of the feature, not because they are forced to by the platform's developers. There are starting to be some compelling features in py3k, but none of those required the massive language breakage that has happened between Python 2.x and these releases. All of the compelling features could have been added piecemeal through the normal backward-compatible deprecation and release process. And the devs who were so bothered by print and exec being a function, or other stupid things could continue to complain in the mailing list while the rest of us get our work done.
- deong 13y agoI tried very hard to be in the python3 camp. I'm among those who found the changes to be mostly good ones, and I've talked myself into biting the bullet a couple of different times, but it always turns out the same. Last month I gave up and reverted the project I'm working on now back to python2 after spending an afternoon looking for unofficial ports of a large library only to find that someone on Github had forked it, done the hard work of fixing 2200 broken bits, and had his pull request ignored without comment for a full year. I give up.
- garenp 13y agoWhich library is that? Truly curious.
- pron 13y agoNitpick, but the longest break so far between major Java releases has been 4.5 years[1] (between Java 6 and 7), which also spanned Sun's acquisition by Oracle. [1]: http://en.wikipedia.org/wiki/Java_version_history http://en.wikipedia.org/wiki/Java_version_history
- ishbits 13y agoAs a developer it's easier for me to ship java apps with the current runtime than it is to ship a python app with the updated runtime. Therefore I'm more likely to stay current with Java than I am with Python, especially when my target is any Linux from centos 5 and newer (including debian, etc. centos 5 is more used as a reference for a date).
- kamaal 13y ago>>That's totally bonkers. Actually its not. No one will want to spend time and effort on regression just because the tool maintainers want a print statement to be function and not a statement. Or for a small trivial change.
- rat87 13y agofrom __future__ import print_function has been available since 2.6
- camus2 13y agos/print(.*)/print($1) ? Anyway when a language doesnt have a strong unit testing culture,that's what happens.
- aeroevan 13y agoOr just use 2to3 which automates most of those simply changes and nose for unit tests :)
- broodbucket 13y agoThis isn't just a "cosmetic" change, it's actually useful; print as a statement can't be used in list comprehensions, and print as a function comes with end= which is a huge time saver.
- rectangletangle 13y agoI think adoption will improve substantially when major Linux distros start shipping with Python 3.x as the default interpreter. I believe this is the case with Ubuntu 14.04 LTS.
- kintamanimatt 13y agoMajor Linux distros already do.
- stefantalpalaru 13y agoName one other than Arch.
- kintamanimatt 13y agoFedora has for a while. I really don't recall regarding versions prior to Ubuntu 13.10, but this version has Py3x as a default.
- dagw 13y agoUbuntu 13.10 ships with python3, but python2 is still the default python you get when you run /usr/bin/python
- kintamanimatt 13y agoMy apologies, re 13.10. I forgot about that line in my .bash_aliases file! I stand by Fedora though with a reasonable degree of confidence!
- maximux 13y agoNo, Fedora ships with 2.7.
- 13y ago
- thomasahle 13y agoI find it hard to think of anything that doesn't run on Python3 by now. The only thing that's still good about Python2 is that it's much faster. I always hope for a release that addresses that.
- kintamanimatt 13y agoTwisted and gevent don't!
- rspeer 13y agoWhich I think is pretty revealing about the state of Twisted and gevent. I know from experience that gevent is not in a healthy state of maintenance. There have been some recent commits that indicate it might get better eventually, but I would not design new code to use gevent.
- illumen 13y agoA subset of twisted is already running on python3... enough that projects are going into production with twisted on python3. Full python3 plan for twisted here: http://twistedmatrix.com/trac/wiki/Plan/Python3 http://twistedmatrix.com/trac/wiki/Plan/Python3 They really are one of the slowest projects to update.
- buovjaga 13y agoThis things lists Python3 support in PyPI packages: http://python3wos.appspot.com/ http://python3wos.appspot.com/
- mildtrepidation 13y agoThank you for posting this. Pages like that are nice for pointing out to people who don't have issues that many of us do. I think people tend to forget that most programming languages are not single-purpose and can be used in widely varying environments for significantly different purposes.
- rhizome31 13y ago
- anewhnaccount 13y agoThe problem with statements like these is people always move the goal posts. If challenged it goes from nobody to talking about the proportions. There are plenty of people who will use this straight away. Yes, maybe as a proportion but Python has a lot of users developing a lot of different types of applications. Even if initially it's a small proportion, it's not the absolute numbers are large. I guess some of the bellyaching is because there's a feeling that the community and ecosystem of libraries is becoming fragmented -- but the community is large enough to take it and anyone really needing a particular library should be capable of expending the effort to port it or find an alternative. There are plenty of users who don't engage with the community much and/or just use established libraries/the standard library anyway. In conclusion, not everyone is in the same boat as you. Try and see beyond your own nose pleas.
- saurik 13y agoI imagine some of the disappointment is that there is a large community of people using the language ecosystem "Python 2", and that ecosystem seemed to have been prematurely killed in the hope of not just helping the small proportion of people who considered this new language ecosystem "Python 3" valuable, but seemingly in a failed attempt to actively strongarm people into switching: it's like if the people who worked on C++ standardized Rust as "C++14" and indicated that not only were no language inprovements ever coming to the old C++, but that all of the compiler implementaters had given up on it and were unlikely to ever release updates, even to fix bugs: that if people wanted support from the language called "C++" they needed to switch to this new language ecosystem. Sure, the syntax disparity is much smaller between Python 2 and Python 3, but the library semantics are still highly skewed (I mean, if it were just some simple syntax issues everything would have been trivial to port immediately). But really, the key issue is really the language ecosystem: the number of available libraries, the distribution in major operating systems, the cloud hosting options, etc. While these almost look vaguely hopeful for the Python 3 crowd at this point, it took five years of enforced death of Python 2 to strongarm it to even this point, and as it stands it is still weak. Maybe after 5 years of enforced death to C++ compilers someone could also claim a transition to Rust looked hopeful. And again: I understand that for some people this is great: I don't think anyone is actively complaining that Python 3 shouldn't exist, more that it's existence at the detriment of Python 2 snubbed a very large community of people. Like, one could say the same thing to the people who advocate everyone upgrading ASAP, or even ever: "not everyone is in the same boat as you; try to see beyond your own nose please".
- ubernostrum 13y agoI'm already using 3.3 on live stuff. Likely to make the jump to 3.4 when I have the time to do the upgrade.
- chrismonsanto 13y agoI will be using Python 3.4 in production soon.
- chris_mahan 13y agoI use python3 in production. Working at large bank.
- illumen 13y agoNice one :) If there's anyone not using python3 in production now, I'd be wary of that team. Maybe it could be forgiven two years ago, but now... There's just too much to be gained with modern python. But hey, there's still some organisations using php3 in production!
- darkarmani 13y ago> If there's anyone not using python3 in production now, I'd be wary of that team. I'd imagine the majority of teams are using python2 in production. Especially when LTS OSs ship with python 2.7. Things like Anaconda make it a lot easier to install python3 along side of python2.7 and move individual projects to 3.
- chris_mahan 13y agowe have a simple setup, and use python3.3.3. (Should be at 3.3.5 soonish) We have a dependency on pyodbc and they don't have a version for python 3.4. Also, we use pywin32. (Yes, on windows. We use it to monitor machines, do graphviz diagrams, xml-rpc, that sort of things. On windows mmsql environemnt. Yes i keep on top of it. We try to do everything we need with the standard library, which is surprisingly good. Also, I do have one service using 2.7 because web.py. (Thank You Aaron!)