Python’s Third Coil

I'll meet Perl 6 at the end of time.
Now for some good old fashioned naked Python bigotry…
Where to start? Python 3.o, the future of the Python programming language? Let’s start with Perl 6, the Duke Nukem Forever of programming languages:
Perl 6 has been in development since 2000. The Perl 6 project has never had a clear timeline, although various contributors have given estimates over the years. In early 2007 Jesse Vincent, the Perl 6 Project Manager said, “The Perl 6 project has no schedule … one doesn’t want to rush a largely volunteer effort to design and implement a worthy successor to Perl 5.”
Perl 6 has been in development nearly as long as Duke Nukem Forever. A generation has been raised up who know not Duke Nukem or Perl. Perl has been rotting in its infernal strangeness all the while. The Perl community is a large, dead mass of gnomish graybeards, shunned by more polite company, stuck in a 1989 fashion timewarp, the preferred language of those who found awk less too user friendly.
The task of Perl 6 should have been easy. Hook up a 1200 baud modem. Open a XModem terminal. Capture some line noise. Congratulations. You’ve created a more readable and more modern language than Perl 5. Instead the Perl 6 developers, as in someone’s phrase, “voted themselves off the island”. They pursued Perl as art, despite the fact that there is no art in Perl. In their pursuit of some false aesthetic, they wandered off into dark and inaccessible places.
Consider the task of the Python 3000 developers, far more daunting than Perl 6. They had to top perfection. Python is the greatest programming language ever created. They had to improve it.
Python 3.0 development started as early as 2000 but it differs from Perl 6 in one respect: it shipped, nine years after Perl 6 undertook its heroic development cycle. Python 3.0 final was released Wednesday. They eschewed radical changes to the language in favor of removing some minor warts and re-emphasizing Python’s strengths. They should be commended for demonstrating what an excellent software engineering process should look like. They put on a show.
There has been mixed reaction to its release. Some are esctatic:
Python 3.0 is not a release for today, it’s a release for the ages. Python will now be known as one of the best pieces of software in world history. Python 2 is great; Python 3 is masterful.
Some are positive with reservations:
Still, I don’t think that Python 3.0 is a bad thing. But that it’s displayed so prominently on the Python web site, without any kind of warning that it’s not going to work with 99% of the Python code out there, scares the hell out of me. People are going to download and install 3.0 by default, and nothing’s going to work. They’re going to complain, and many are going to simply walk away.
Some are cumulatively negative.
Some talk about monkeys.
The counter-reaction-reaction has begun.
My own reaction is positive but pragmatic.
I’m glad Python has a clear way forward, something to build towards. I downloaded Python 3.0 and installed it on my MacBook. I’m one of those nameless toilers who doesn’t hack on the core language, doesn’t contribute to the prominent projects, or comment upon the great shakings of the community. I just use the language on a daily basis to get software development done at a faster clip than a bondage and discipline language would allow. Python 3.0 is far from something I would use for production.
Our company will proceed with caution towards Python 3.0 (as most in the community have been suggesting for years). We will continue to use a 2.x release for the next 3-4 years. We’re running on 2.5 right now and at some point we’ll move to 2.6. We will move to 3.o when it makes sense and when software like Django, Pylons, and SQLAlchemy are available for it. However, Python 3.0 answers a fundamental question: Where is Python going? Now we know. If management was worried about where Python was going, they now have a Golden Path forward for a decade or more.

I enjoyed this post quite a lot.
Python is a fine language, especially for someone looking for the complexity of a compiled language without the speed.
Perl, by contrast, allows the rapid development of text-processing applications, a classic information processing domain that is growing more useful through the web, bioinformatics, and so on.
tdaxp
December 6, 2008 at 11:17 am
[...] Quelle [...]
Zu Python 3k (und Perl 6) « Oldschool-Abschluss
December 6, 2008 at 1:09 pm
Heh.
Many languages are special-purposes. I would not want to use Ruby, or C, or even Python for-text processing. Perl does that very, very well.
Likewise, R is my choice for statistics. SAS and SPSS macros are crippled by comparison, and other languages simply don’t have the wealth of features.
I survived about two years of graduate school still thinking I could find a One True Language. I don’t, anymore.
tdaxp
December 8, 2008 at 7:32 am
Agreed. Perl is a fine language for text processing. You’ve never experienced the joys of programming a parser until you’ve done it in the original Klingon.
josephfouche
December 6, 2008 at 1:03 pm
R. Interesting. I’ll have to check that out. It even has Python bindings:
http://rpy.sourceforge.net/
One of the virtues of the One True Language (TM) is that it can be used to program all of the other interesting languages. As a confirmed Python fanatic, I travel the earth to spread my message of liberation. Programmers of the world, unite! You have nothing to lose but your (statically typed) chains.
josephfouche
December 8, 2008 at 10:14 pm