If you ask Python creator Guido van Rossum, Python 3.0 -- which shipped last Friday -- is the best version yet. It's more consistent, it's more streamlined, and it does away with a lot of the cruft that had been lingering around since earlier iterations of the language.
It's also light on new features, it breaks backward compatibility so thoroughly that most old Python code will need to be rewritten to run on it, and it benchmarks about 10 percent slower than Python 2.5. But hey, you can't have everything.
Language designers have tried that before, van Rossum says, and it seldom works. "C++ became too complex for the average developer by having as an explicit goal backward compatibility (with C no less) and the ability to get as close to the hardware as possible," he writes in a recent blog post. Adding that kind of complexity to Python wouldn't be doing programmers any favors.
In fact, van Rossum and his collaborators put the greatest emphasis on taking things out of Python 3.0, rather than putting them in. What other major programming language can make that claim?
But then, Python has always been a little quirky. In a wry jab at Perl creator Larry Wall's famous mantra, "there's more than one way to do it," the Python community likes to say, "There should be one -- and preferably only one -- obvious way to do it." They're just joking. Kind of.
Spring cleaning at Chez Python
But if Python's Spartan philosophy seems quixotic, it has earned the language a dedicated following. Today Python runs on everything from mainframes to mobile phones, and the roster of its devotees includes such big names as AstraZeneca, Google, and Industrial Light and Magic. It powers all kinds of cutting-edge computing, from drug discovery to the Google App Engine.
Some measure of that success can be attributed to the fact that Python is free, open source, and community-developed. But the downside of community development is that the community inevitably has ideas. Sometimes those ideas blossom into valuable, lasting additions to the language. Other times, not so much.
That's why, for Version 3.0, the Python developers decided to clean house. Redundant features were removed, inconsistent syntax was cleaned up, and ideas past their prime were retired. And there was no pussy-footing around. When van Rossum says Python 3.0 is "the first ever intentionally backward incompatible Python release," he isn't kidding.