IronPython 1.0 Brings Managed Code

By Scott M. Fulton, III | Published September 6, 2006, 5:36 PM

Programming language developers are quite accustomed to using beta builds of their own work even in production environments; so for them, today's announcement from Microsoft that IronPython 1.0 is finally complete, may not be big news.

But to the broader world of system administrators and IT department staffers for whom rapid deployment and C# continue to be opposite concepts, the creation -- under Microsoft's stewardship -- of a dynamic language closely linked to the .NET Framework, and using Python constructs, is the opening of a new door for Windows.

Python rapidly gained popularity on how its tight, conservative command set could be so flexible as to deploy object-oriented functionality comparable to C++ and Microsoft's C#, but from the command line.

Its widespread use in Linux and UNIX environments almost single-handedly resurrected the dynamically interpreted language as an accepted tool for prototyping and rapid deployment. Although originally considered for quick-and-dirty use, Python became the language behind Zope, the leading open-source content management system.

A long-time Python proponent, Jim Hugunin was involved some years back with a successful project to make a Python interpreter (now called Jython, formerly JPython) run within a Java virtual machine.

After seeing Microsoft's initial permutation of the Common Language Runtime -- its competitor to the JVM, and the core component of the .NET Framework -- Hugunin wrote a response paper entitled, "Why the CLR is a Horrible Platform for Dynamic Languages." Before too long, Hugunin found himself working for Microsoft, with the opportunity to make corrections to the CLR first-hand, and also to transfer his Python knowledge to .NET.

The payoff is IronPython. While not one of the company's "Visual" languages and not available in an "Express" package like Visual C# or Visual Basic, IronPython's tight communication with .NET makes it accessible from Visual Studio, as Hugunin demonstrated for MSDN TV last November

IronPython is not the first Python for Windows, though it is the first to utilize .NET, and is therefore the first managed code implementation of Python for the Windows platform. As Microsoft acknowledges, IronPython is by no means 100% compatible with CPython, the currently accepted standard Python compiler, although the differences mainly concern how the underlying runtime interpreter handles data types. Similar differences were experienced with Jython.

One other huge difference between IronPython and its non-Microsoft brethren is how it quickly implements Windows foundations through .NET. As Hugunin demonstrated for many new converts in previous months, IronPython has direct access to the Windows Presentation Foundation ("Avalon"), through a link to its namespace. As a result, IronPython can create and manage graphic objects through Avalon dynamically, enabling developers to build or prototype entire consoles for applications in mere minutes.

Furthermore, using an Extensible Applications Markup Language (XAML) file -- an XML-based description of a graphical front-end -- a Python script can pop up a complete applications console, and assign managed code to respond to WPF-recognized events such as a button click or a drag-and-drop.

There's also the performance factor, which with version 1.0 has yet to be fully verified. But independent tests of earlier IronPython betas reported 80 percent faster performance than with CPython on Windows.

In the rapidly re-burgeoning world of dynamic languages, IronPython will find itself among some new and fast-growing company, even for the Microsoft realm. The Atlas project represents Microsoft's effort to embrace the ideals of Asynchronous JavaScript (AJAX), with "smart client" network applications like those deployed by Google, although utilizing the .NET Framework.

PowerShell (formerly Monad) represents Microsoft's home-grown effort to reinvent the administrator's scripting language, using entirely new constructs developed mainly by one of the company's most outspoken and dynamic personalities, Jeffrey Snover.

While Atlas targets network application developers and PowerShell targets sysadmins, IronPython will likely target old-school RAD developers eager to see their favorite, flexible, yet principled development platform in a managed code environment that takes full advantage of new safety and security features being integrated into Windows.

There will be some overlap, as new developers discover these three languages do many of the same things, albeit in different ways, and performance comparisons are inevitable. But after years of wrestling with the nearly impossible complexities of deploying Windows applications using constructs such as COM and MFC, developers may find IronPython to be the clincher that finally brings independent innovation back firmly into the Windows camp.

Comments

View comments by with a score of at least

Hopefully there'll be an Iron Perl!

Score: 0

|

"IronPython betas reported 80 percent faster performance than with CPython"

As long as you don't count the time it takes to load basic, I mean the interpeter, no I mean the .NET framework.

Score: 0

|

I think the person behind this project, has done a great service to every programmer, he saw a need and a flaw in something and was able to solve the flaw and release a great idea.

Score: 0

|

Security firm: Windows patches not responsible for 'Black Screen of Death'

On second thought, maybe that access control list thingie with the lockdown something-or-rather didn't trigger an alleged, perhaps non-existent, pandemic.

My Windows 7 confession (and why you should confess, too)

I've held back the real reason for sticking with Windows 7, even as, gulp, iLife calls me to go back to the Mac.

Apple settles with Psystar except for 'circumvention devices'

The fracas with the Florida clone computer maker might have ended today had Apple not have muddled the issue over a cheap piece of Psystar software.

Where did Apple's Black Friday sales go?

According to one analyst, Apple sold nearly four fewer Macs per hour on Black Friday than same day a year ago. Now why is that?

Google begrudgingly adjusts news crawling for paid publishers

If publishers want to make readers pay for news content, and thereby drive down its popularity and Google ranking, the company says, they can just go right on ahead.

Fee or free? Murdoch, Huffington square off over the cost of Internet news

Participants in an FTC workshop yesterday witnessed the two extremes of the Web news publishing debate, still centered on the issue of long-term profitability.

Microsoft denies latest 'Black Screen of Death' claims

After an anti-malware producer announced a fix to what it says is a swarm of recent KSoD problems, evidence of the swarm itself has yet to turn up.

Latest Firefox 3.6 beta fixes 133 bugs, promises faster page load times

A once-sluggish beta testing process has kicked into overdrive, with astonishing success at finding serious bugs. Will Mozilla be able to fix all the others in time?

Confirmed: Office 2010 to ship in June

Two weeks after Microsoft had been expected to draw a clearer roadmap for its principal applications suite, it's finally ready to commit to the end of H1.

New EU antitrust commissioner will oversee Microsoft, Oracle+Sun, Intel issues

As one of Europe's most prominent politicians shifts positions in January, her replacement remains a question mark over technology's biggest issues.

Without its own 'iTablet' yet, is Apple missing the boat?

Steve Jobs is on record as dissing "single-purpose" devices like e-readers. But given their recent popularity, was that a mistake?