3 ms·
We have had answers for the past two years: Python 3 adoption will be measured in terms of years and will only come as third party modules (such as Numpy, Scipy
by jnoller 16y ago
We have had answers for the past two years: Python 3 adoption will be measured in terms of years and will only come as third party modules (such as Numpy, Scipy, and many others) slowly make the port.
No one has ever claimed it to be publicly ready for product, but more and more libraries are porting every single day - forward progress is being made, but like all change in the community, it takes time.
I'm a core developer: and even I stick to python 2 right now because of my dependencies. I know full well that me being able to run Python 3 in production is at least another year, to two years off.
- jedsmith 16y agoThat's what I've been told for the last two years -- it'll come, give it time, etc. Then the developer of a library I use announces that a port to Python 3 is unlikely two years after Python 3 is released, and I'm left with even more questions. I'm curious since you continue to advise patience how you'd react in my position. I've been patient, and now my library of choice for WSGI coming to Python 3 is, quote, "unlikely". What now? Why should I bother caring about 3, if an influential voice in the Python community doesn't? Armin makes excellent points in his post, to be frank. The fault line is widening, honestly, because of the lack of forward momentum. Your estimate of Python 3 in production being a year to two years off sounds like it come completely out of thin air, as I'm starting to wonder if it will ever happen.
- cookiecaper 16y agoMost Python libraries are considering and/or starting a port now. Py3 is just now starting to be taken seriously, which is fine by me; we don't need to rush to use the "latest cool thing" as long as we get there eventually. It's good for Py3 to be tested and developed without being flooded for its initial lifecycle, which is what happens here. Note that this attitude has mostly been guided by the Python Foundation in the first place. Until a few months ago, Python 2 was still actively developed. It has entered maintenance mode with 2.7; all future features or enhancements now go to Py3. Again, please note that 2.7 was released only about six months ago. Since then, libraries, distributions, and other major players that push normal users to adopt new stuff have been moving to Python 3. As popular low-level libraries make the move higher-level stuff will begin to consider it too; Django's reason for not porting to Python 3 is basically "none of our dependencies run there yet". This post actually demonstrates the strength of Python 3; while the author doesn't feel that this library specifically is a good candidate for a port, he is thinking about it, and he recommends that users still prepare for the transition. He says, in effect, "write code so that 2to3 can handle it easily when the moment comes", not "give up on Python 3 entirely".
- jnoller 16y agoBrett and I were just discussing this - and he put up a post summing it up nicely: http://sayspy.blogspot.com/2011/01/my-semi-regular-reminder-that-python-3.html http://sayspy.blogspot.com/2011/01/my-semi-regular-reminder-... Short version? We planned on it taking at least 5 years. Armin's point is that Python 3 isn't "there yet" in terms of demand an adoption. Python 3.2 (which increases performances, and fixes bugs) is just coming out. Armin's point - backed by his comments here, is just that demand isn't high enough for him to dedicate the resources to port. On the other hand, earlier today he was committing bug fixes to the Python 3 source tree, so there's obvious forward movement.
- jedsmith 16y agoThat's a good post, and I'm glad Brett took the time to share his thoughts. Characterizing me personally as a naysayer is missing my point entirely. Throughout this whole thread, I've mentioned that I have questions. The closest I got to naysaying was a rhetorical "why should I care about 3?". Perhaps that's frustration of others boiling over into his response, but given that my comments were really the catalyst for the post (presumably), I was surprised to read it that way. Brett, Armin, you, Guido, and the rest of the "in" Python developers expected a long turnaround. I understand that now. Brett touched on something, though: that 5-year estimate was on python-dev. That internal discussion does not percolate up to the rest of us that use Python daily but only lightly pay attention to the development ins and outs. I have learned a valuable lesson from this entire thing, which is that I need to pay attention to all of my tools. How many end users does Brett expect to read python-dev? You have to look at this from the perspective of a casual user, or perhaps even a user just getting started with Python today. People always rush to the newest version, and the "Python 2 or 3?" link on python.org is all the way at the bottom, below even Merchandise. (It should be above the download links, in my opinion.) http://www.python.org/download/ http://www.python.org/download/ also attempts to very lightly dissuade the user from getting 3: > they're both considered stable production releases. > If you don't know which version to use, start with Python 2.7 Those are both true statements, but one can be read as going against the other. Assuming they miss that -- which can be easily blamed on the user, I guess -- new users end up playing around with the Python tutorial in IDLE under Python 3. Maybe a few scripts and adoption of Python 3 specific idioms. Then a friend mentions Django, but wait ... Django doesn't have Python 3 support yet. Now they're confused. What now? Oh, they have to use Python 2 instead, but a lot of code that they've written so far doesn't work under Python 2. In my very humble opinion, I believe this is a poor time to get started with Python. This transition is hurting new adoption, and there is an incentive to get it finished as quickly as possible. What I don't gather from library developers is a sense of urgency to fix it, and my evidence to that end would probably be the acceptance of PEP 3333 taking ages among other disagreements. The immediate response that I anticipate is well, we don't have the resources, but what I gather from other Python developers like me is that this confusion is hurting more than helping. I'm honestly not sure how I would have done this differently, and I don't claim to have enough wisdom to even know where I'd begin. My initial question would be, if Python 3 had a 5-year outlook for libraries being ready, why wasn't it stabilized and kept in development for, say, 4 of those years? Was the general release necessary in order to port libraries and get distributions on board with packaging? I understand which I should pick because I have Python experience. A flood of new users probably do not, and comments elsewhere in this thread (such as the suicide one) just demonstrate even more confusion about the entire thing. Obviously, I fully realize that it's unfair to hold a language back because the libraries need a transition period. However, Python without a library (particularly for Web development) only gets you so far, and the burden is on the library authors now. I guess the underlying thought is that if Python 3 is given first-class treatment on the python.org brochure, an uninformed user might expect that a choice between the two is unnecessary. That there is a choice that must be made just serves to confuse and alienate users. My two cents, and I'm probably off base anyway.