Mark Pilgrim says:
Anyway, I’m really proud of how well DiP3 [Dive into Python 3, ks] came out. The only problem is that no one is using Python 3. I took a gamble last year that large libraries would port to Python 3 while I was writing. That didn’t happen. I think it’s pretty clear by now that that’s not going to happen anytime soon. Everyone who gambled on the glorious non-backward-compatible future got burned. Given my experience with HTML, you’d think I’d learn. Ah well.
So what are realist expectations? Python 2 as the future of a research language called Python 3?
I don’t know what all the hubbub is about. When P3 came out I thought it was pretty much assumed that it would be a minimum of a couple years before the big libraries caught up. The majority is FOSS and you can’t force them to upgrade. That, plus P3.1 was the first good series, I think people actually started looking at it. What could happen? Maybe a bunch of “code days” where a lot of heavy programmers in the Python world choose one of the libraries and they work it until it is a P3 version. Other than that…people are only going to use the 2.X series despite any P3 marketing attempts.
More Python 3 libraries this year, it starts getting useful next year, mass migrations 2012.
Perhaps we need a corporate sponsor for a summer-of-code style port-a-thon.
I have to agree that making 3 incompatible effectively created a new language. Many people will move on. And I have to say I’m looking seriously at F#. It’ll be free to use and ubiquitous. It’s been lovingly polished by Microsoft for 5 years and its time is now.
All the stuff I’m doing for work now is Python 3 compliant, so once the frameworks/libraries we use are compatible we can just switch, I imagine/am hoping most of the rest of the dev community does the same (from future import * is awesome), also the new string formatting is nice (http://docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3101)
I’ve been doing real work in Python 3 for close to a year now. Web apps, where the choice doesn’t get in the way of delivering the solution to the client. But yes, am still doing plenty of work in 2.x even as I like Python 3 and hate having to traverse both, mostly because of the string|unicode / string|bytestring differences.
Yes, it would have been nice to see one of the more common web templating tools be 3-compatible sooner, as well as Docutils (started supporting 3 in a slightly broken way a while ago) and SQLAlchemy (which as of April 18 now supports Python 3).
Docutils mostly works; I’ve not run recent snapshots to see if they’ve ironed out the few problems I had run across. Seems to me making sure basic tools most of us use would be a priority.
SQLAlchemy now supports Python 3 as of April 18. Not checked this out yet but it’s on the list for the weekend.
If Django were running on 3 (they’ve been saying two or three years now for official support, for two or three years) and you’ll see more of a tidal than a shallow wave.
I agree about the Django blurb from Mike. Django is like the poster child of Python. If it moved to P3, I think you would see a ground swell of libraries porting over.
“I have to agree that making 3 incompatible effectively created a new language. Many people will move on.” … what a load of twaddle.
People are still enthusiastically using Python 2 and plenty of people are in the process of porting their libraries to Python 3.
The plan was never to switch overnight. The plan is progressing perfectly well.
The problem for me is simply most of my plug ins i use to assist development are only 2.x compatible for the time being. As a result I haven’t seriously looked at 3 yet, but as soon as they are I will be able to take a serious look at 3 without compromising my productivity and maintain the full functionality of my programs
Some long-term/enterprise Linux distributions haven’t even released a stable version with Python 3 in it. So it will be a year or two before a large chunk of relevant users gets their hands on it for the first time. Also, porting libraries is not going to be viable for many smaller projects until Python 2.5 support is out of the picture, so you can rely on using the transition measures in Python 2.6. I expect that wide Python 3 use it still years away. Many people don’t really have the need. It needs someone with a real need and many dependencies to drive it forward. It won’t happen just out of theorizing.