The present and future value of Python

The universal database is just one example of the kind of next-generation platform service that will be used primarily through managed interfaces. As operating systems consolidate around managed interfaces -- to data, to middleware, to graphics -- they're going to tend to prefer the Java and .NET and Mono VMs over the Perl, Python, or PHP VMs. But the agility of the dynamic languages, and the collaborative energy of their open-source communities, will matter more than ever. Injecting these qualities into the mainstream VMs is something I've always thought was crucial.

Now as many of you probably heard, Jim Hugunin made two dramatic announcements on Wednesday at the O'Reilly Open Source Conference. Jim's the guy who created Jython, which is Python for the JVM. His first announcement was that IronPython, which is Python for the .NET Common Language Runtime and for Mono, has been released. The second announcement was that Jim starts his new job at Microsoft on Monday, where he'll work on IronPython and help make the CLR friendlier to dynamic languages. I think this is a huge deal. Managed code isn't a panacea, but it's the dominant way of making programming easier and safer. Last month I wrote a blog item with the title: "It's not the J in Java Virtual Machine that matters, it's the VM." For the same reasons there aren't a dozen CPU architectures that matter, I don't think there will be a dozen mainstream VMs. There will be the JVM, there will be the CLR, and -- let's all pray -- there will be a viable non-Windows alternative to the CLR in the form of Mono. And then, maybe, there will be Parrot, one runtime to bind all the open source dynamic languages.

I don't mean to suggest that integration with the mainstream VMs is a survival issue. Python's doing just fine all by itself. BitTorrent, for example, is touching millions of lives. Users of the SpamBayes Outlook plugin have no idea they're running Python. When I was poking around in the Gmail help system the other day, a Python stack trace came spewing out. If Chandler succeeds, it'll be the first major user-facing GUI application written in Python, or indeed in any open source dynamic language, and that's something I've been wanting to see for a very long time.

What I do want to suggest is that, if we can get really good implementations of Python running on the mainstream VMs, Python will be in a position to touch many more millions of lives -- and, what's equally interesting to me -- to influence the evolution of the managed frameworks running on top of those VMs. There hasn't been anybody inside Microsoft who cares about this, but on Monday that'll change. There hasn't been anybody inside Sun who cares about this either, and I don't know when or how that might change. Still, it isn't ultimately up to Sun or Microsoft to make this happen. What they can do, and should do, is lay the foundation. It's up to somebody in the Python community -- maybe somebody in this room -- to build on top of that. So if you're looking for a project that can really make a difference, you might want to consider Jython or IronPython. Any takers? [Complete text of the speech]
This extract concluded the talk I gave this summer at the Vancouver Python Workshop. Tim Bray's item last week about the dynamic-language summit at Sun reminded me that I never got around to posting the text of my speech.

The first half of the talk reviews my experiences as a convert to Python over the past few years. It may actually be of more interest to a general audience than to the devoted Python hackers who attended the Vancouver conference, who already know all this stuff.

The second half of the talk lays out my argument for the strategic value of Python -- and by extension other dynamic languages -- in a world of software platforms that are increasingly based on virtual machines and managed code.

Former URL: