login
Holden Web
What you'll need to know tomorrow

Python 3.0 Alarmism: Pay No Attention

I don't follow the python-dev list religiously, but I do like to keep my eye on (what seem to me) the more important threads. Recently there's been a "Proposed 3.0 compatibilty module" thread in which various luminaries have discussed how migration to the new version might be made easier for current users. The general conclusion, now the dust has settled, seems to be that no compromise is to be made on the 3.0 design, that it will clearly break compatibility with 2.5 (no surprise there), and that 2.6 should contain enough 3.0 features that onward migration with the help of an automated translation tool should not be a problem.

In an earlier thread on the proposed bytes type, I expressed to Guido my feeling that it's important the development of 3.0 doesn't fragment the community in the way suggested by theand asked him whether there were plans to discuss 3.0 with implementation teams from the versions other than CPython.

Yesterday there were some rather alarmist comments by Calvin Spealman, suggesting it's at least possible that the sky is falling and that forks are coming. One quote from Spealman's blog is revealing: "What few ideas I do have towards avoiding the problems are not well thought out, probably are missing vital information, or are simply stupid." You said it, Calvin, and I'm not convinced that your approach was the most helpful one you could have taken. Fortunately our technical blogs don't usually make the front pages of the Washington Times - I have been known to suffer from foot-in-mouth myself.

Now I see that Chas Whitacre has also read Spealman's blog and is looking for advice in whether to adopt IronPython. He says "So what would really help me would be posts demonstrating the respective market shares of the various Python implementations, and resources detailing the differences between them". This is a reasonable request, but I have a nasty feeling that these two blog posts between them will spark alarm, that those with an axe to grind will jump in gleefully, and that a shitstorm will result.

Guido replied off-list, so all I can say is that he has confirmed that the upcoming PyCon represents a great opportunity to address these issues. In fact, though, the situation today is already somewhat fragmented. Jython support appears to lag at least a release-and-a-half behind and IronPython and PyPy are currently (as far as I know) still targeting 2.4. Just the same they are all implementing Python, and that's the important fact to keep in mind.

I believe it's necessary to try to ensure that all implementations are encouraged to stay in step with the reference implementation (which at the moment remains CPython). Even if this proves difficult and they don't all make it to the promised land of 3.0 their users will still be better off running 2.3, or 2.4, or 2.5 than using other, less useful, languages. Microsoft managed to break compatibility on Visual Basic without the world coming to an end, and the user community involved there was enormous, so let's not pretend that this is any more than a storm in a teacup.

Of course the information that Chad Whitacre asked for would be both interesting and useful, so if anyone has information to share (preferably facts rather than opinions, but I suspect few can be discovered) I would love to see it posted, here or elsewhere. One fact I can give you is that Python's popularity continues to grow. As Python is now integrated into most popular Linux/*nix distributions (and indeed scripts many of their installation routines) a much larger percentage of the downloads are for Windows than was the case a year or two ago. H-P now installs Python on their Windows PCs to help script their installs, so the movement towards world domination continues. You can even run Python on the Nokia 700 web tablet. This is a fundamentally healthy situation.