12 ms·
Problems With the Python 3 Ecosystem
- symlinkk 12y agoSorry but this misses the point. The biggest reason Python 3 isn't being used is because most libraries haven't been updated to support it.
- jpulec 12y agoCheck out https://python3wos.appspot.com/ https://python3wos.appspot.com/ . The majority of major packages have been ported over. Most of the bigger stuff is often run independently and not actually imported by other code (sentry, supervisor, ansible... to name a few).
- jsmeaton 12y agoThat may have been the reason awhile back, but it's not the case for the vast majority of projects these days. Though the stigma may still be a major cause for lack of traction.
- Animats 12y agoThat situation has improved. For a long time, the libraries for a MySQL database and for parsing HTML were completely different on Python 2 and 3. Now, at least, there are libraries for those operations that work on both platforms. It's taken years for that to happen, though. I'm considering porting a production Python 2.7 system, and it now looks feasible to convert it to using different packages on 2.7, then convert to Python 3.x.
- laurencerowe 12y agoI feel like the balance has tipped in the past six months. I started my current project two years ago and stuck with Python 2 because I was concerned about library compatibility. The Python 2 standard library is now showing its age. Limitations with the multiprocessing module on Python 2 drove me to look into the possibility of switching to Python 3 and I was pleasantly surprised to discover all ~45 packages my project depended on had been ported (through caniusepython3.com.) Porting to 2/3 compatible code with python-future.org turned out to be fairly painless so I expect to make the change soon. The transition has been a painful one, but I'm sure that these sort of problems will feel a thing of the past in a year or two.
- zzleeper 12y agoAgree with the other people replying. I tried twice in the past to switch but always got stuck at some important nonported package. Recently, however, I jumped in and was mesmerized that i) most packages worth installing are already ported to py3, and ii) py3 has some sweet things that I didn't got with 2.7 that make it worth it.
- _wmd 12y agoThis is a complaint about the Ubuntu 14.04 python3 package, not Python itself
- great_kraken 12y agoTrue, it's an incredibly personal and situational post with him using the word "me" throughout. The title choice is just really poor it seems. Although I'm someone who doesn't develop in python, I have toyed around with the packages and versions for dependencies for other projects and tools I use. At first I assumed that "latest is greatest" but recently came to understand that it's not the case as far as practicality is concerned. Perhaps it is involved with the rather irritating versioning (python3, pip3, etc. - I've found the same thing to be true on archlinux), but I think a lot of it is definitely as somebody else said above, the lack of updated libraries.
- peteretep 12y agoPython strikes me (as a Perl, Haskell developer) as the boring scripting language, which I consider to be a feature. Golang, not Python 3 is the obvious successor for people who want One Way To Do Everything. Ruby was the obvious successor to Perl, rather than Perl 6, but I wonder if Rust ends up being Perl's natural successor. It's fast, there are awesome functional features, and Perl developers tend to be pretty comfortable with the general concept of references... Not going to appeal to the "hack it to get it done quickly" crowd, but as a replacement for bigger Perl 5 projects...
- markuz 12y agocan you hear yourself ? you sound like a snob bitch. Lets write a server in ruby, or rust ? LOL
- Touche 12y agoI don't see any similarities between Perl and Rust at all.
- moonshinefe 12y agoPersonal opinions of what languages are "boring" aside: "Golang, not Python 3 is the obvious successor for people who want One Way To Do Everything." Uhh, what? I'm not even sure why you're comparing Golang to Python. One is a compiled language that specializes in concurrency and the other is a interpreted scripting language. They're for completely different purposes. Python3 was never intended to be a "one way to do everything language".
- nemothekid 12y ago>Python3 was never intended to be a "one way to do everything language". Python's motto is "There should be one-- and preferably only one --obvious way to do it." - its not meant that Python should be the only tool, but that written python code should only have one have common implementation. (https://wiki.python.org/moin/TOOWTDI https://wiki.python.org/moin/TOOWTDI) Golang also seems to share the same ideal when it comes to written code.
- 12y ago
- msie 12y agoYeah, I had these problems too. I had a problem where I was following the instructions for some Django tutorial and by accident I was always invoking the python 2 interpreter when I should have been running the python 3 interpreter. Death by a thousand cuts.
- RubyPinch 12y agoNote: edited, other people made the other points I made Digressive: "Always wanting to be cutting-edge, I decided I would would start with ubuntu 14.04", shouldn't that be 15.04 then? (latest I could see in the mirrors at least)
- jpulec 12y agoPerhaps the title should be altered. My main argument is that the ecosystem around python3 is what's holding it back. I think the language itself is perfectly ready, and even most major packages have been ported over.
- sylvinus 12y agoThe daily builds of the 15.04 alpha may be on the mirrors but what he meant was cutting-edge stable. Had he used an unstable daily build, his arguments would have been much less relevant.
- RubyPinch 12y agoI agree that going for the actual cutting edge would be a bit silly, but mentioning "cutting edge" and then using just the latest LTS (noting that 14.10 also exists), seems a bit silly to me.
- jzwinck 12y agoA few months ago I attended PyCon SG (Singapore). At some point one of the presenters[1] asked for a show of hands how many people were using Python 2, and how many Python 3. The ratio was about 10 to 1 in favor of Python 2, with hundreds of respondents. Python 3 just doesn't have traction, and it may never get there. It's sort of a shame how Python 2 is now in maintenance-only mode, but on the other hand it's great for professionals: we don't need to worry about the language or the reference implementation changing ever again. [1] Kenneth Reitz, as part of his excellent talk "Python 2.7 & Python 3: A Sacred Love Story."
- gamesbrainiac 12y agoHere's the talk https://www.youtube.com/watch?v=skYBOXE02OQ https://www.youtube.com/watch?v=skYBOXE02OQ
- crdoconnor 12y agoPeriodically I check my requirements.txt with https://pypi.python.org/pypi/checkmyreqs https://pypi.python.org/pypi/checkmyreqs, but there's usually at least 7 or 8 minor packages and 2 or 3 major ones that are unsupported. I don't really mind moving my own code to python 3, but I'm loath to move working library code.
- xj9 12y agoYou could solve that problem by not using Ubuntu: SmartOS, Debian, and OS X all have perfectly functional Python 3 packages. (as I'm sure many distributions and operating systems do) This has very little to do with Python 3.
- jpulec 12y agoUbuntu is one the most deployed server distributions of linux, and one of the most battle tested. While this post isn't meant to criticize python 3 (I think the language is perfectly fine as is), it's meant to criticize the ecosystem, where one of the most deployed distributions doesn't work.
- xj9 12y agoYes, but Debian is also very widely deployed and doesn't ship with a broken Python 3 package. I'm just pointing out that your issue is specifically related to Ubuntu. You'd be better off calling your article: Ubuntu is Not A Suitable Platform for Python 3 Development, or something along those lines.
- jpulec 12y agoActually, this exact issue was also an issue in Debian. The bug reports can be found further down in an answer to the same stackoverflow question. It may now be fixed, I'm not sure.
- chomp 12y agoThe issue linked was against jessie/sid. Debian users expect broken things outside of stable. The Ubuntu release in question was the LTS Ubuntu.
- chomp 12y agoCentOS is arguably the most deployed server distribution of Linux, and it (RH) ships a perfectly fine python3 via SCL. Ubuntu is a snapshot of Debian unstable, and it's not surprising that shipping cutting edge packages results in a few that are broken.
- jpulec 12y agoEDIT: Title changed from "Why Python 3 Isn't Being Used More" to "Problems With the Python 3 Ecosystem"
- hfaran 12y agoI don't understand how a single anecdote about a packaging issue on a single distro is being used to draw the conclusion that "Python 3 Isn't Being Used More".
- afarrell 12y agoIt isn't being used to draw that conclusion. The article starts with that premise and uses an anecdote to illustrate one reason why. In marketing and customer service, the plural of anecdote may not be data but it is is a broad trend.
- lowglow 12y agoThe moderation on titles is killing me.
- healthenclave 12y agoHey James, Good to see your post on the front page, and it was a nice writeup. Personally for me the issue with Python 3 has been the lack of support by many good 3rd party Django apps. Until that happens I can't see myself moving anytime soon.
- dustinfarris 12y agoI've been using Python 3 for all new projects for over a year. It was painful in the beginning, but my recent experience has been very rewarding. The few libraries that I use that have not been ported have, in almost all circumstances, been replaced by better libraries—I presume that this explains the lack of motivation to port the old ones. That said, there are respected programmers who have good criticisms of Python 3[1] that are more level-headed than this sensationalized article; however, that has not stopped the community at large from moving to Python 3 where possible. Also, as myself and others continue picking up LXC technology (Docker) the issue of host/ops dependencies interfering with project dependencies will gradually vanish—which is the only legitimate point made by the posted article. The title should have been: "My first day with Python 3" [1]: http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/ http://lucumr.pocoo.org/2014/5/12/everything-about-unicode/
- anhtran 12y agoIf you are Asian, you will feel better in python 3.
- nnd 12y agoTo summarize the article: Author stumbles upon problems with ubuntu and some other third-party software => concludes that Python 3 is not being used anymore. Well done, sir.