Microsoft accommodates dynamic languages

The growing popularity of dynamic languages, such as Perl, Python, and Ruby -- which are popular for building Web applications -- has caused companies such as Microsoft, IBM, Oracle, and Sun Microsystems to stand up and take a look. Although Microsoft has championed development using traditional Windows development languages such as Visual Basic and C#, the company has recently made accommodations for dynamic languages, with projects such as IronPython and Phalanger hosted on Microsoft's CodePlex site for community development. Still, Microsoft is largely leaving it to the community at large to provide the dynamic-language capabilities on the .Net Framework. Jason McConnell, the Visual Studio product manager responsible for all languages at Microsoft, talks about the state of dynamic languages on .Net.

What is Microsoft's official stance on enabling dynamic languages such as PHP, Perl, Python, Ruby and JavaScript to run on .NET and the CLR, the Common Language Runtime?

Jason McConnell: We always want to enable as many languages as possible for the .Net Framework, especially the ones that our customers are demanding. Dynamic languages like those you mentioned have gained popularity of late, and so officially, there's no official stance except to say that we're looking into how we can enable languages like that to be a great programming experience on the .Net Framework.

So when you say you're looking into it, what steps do you think Microsoft might take? Obviously you're getting some feedback from customers and developers that they want this sort of functionality?

JM: Right. We're looking at those new languages that people are using now. For example, we have a project called the IronPython project that recently went to Release Candidate status. It's kind of like a community project, but it shows early efforts to enable a dynamic language on the .Net Framework. So we've used that as kind of our poster child, if you like, for our strategy or our work into that space.

Do you believe the traditional Microsoft-friendly languages such as Visual Basic or C# offer advantages over these dynamic languages?

JM: Well, they're kind of different beasts. C# is a strongly [typed] static language if you like. VB could be considered a dynamic language; it's always had dynamic aspects to it. [Dynamic languages are] most suited for quick, rapid application development, whereas the statically [typed] languages are for building larger systems with well-defined interfaces. So it really depends on using the right tool for the right job. I think it's unfair to compare a statically [typed] language to a dynamic language.

I'm looking at a definition of dynamic programming languages on Wikipedia here. What would be your definition?

JM: A dynamic language is one that can resolve types and kind of compiles on the fly; in that way it's very dynamic. So, at runtime, the compiler does type-checking and syntax-checking as opposed to a static language, which is done at compile time, which is not at runtime.

To what do you attribute the popularity of these new languages? Their advantages in Web development, perhaps?

JM: Definitely the Web has made an explosion of these things possible. I think Web services as well, not just Web sites and scripting engines like JScript and the engines that are embodied inside of browsers, but also the ability now to stitch together components on the Web, like Web services. If you look back in the mid- to late-90s, scripting was really popular as a macro language behind Office. And we were sewing together, from the COM (Component Object Model) days, we were sewing together components that were just Windows-based and stitching them in together to make applications for Office and end users. And we see the same trend happening now for the Web. So I think it's about sewing together almost like Web mash-ups, you know? Sewing together services and making composite applications, which has really started to reignite this area.

How does Microsoft feel about some of the third-party efforts going on for dynamic language supports on .Net, such as Ruby in Steel or the Phalanger project for PHP?

JM: We're very supportive, as always, of encouraging a third-party ecosystem of languages. This has been true since 2001 when we first envisioned this CLR. So we're very supportive of that and in fact our Lang.Net symposium that was run a couple of weeks ago was kind of like a first try at trying to corral some of the ideas that are out there and foster the idea of a community to build languages around .Net.

What would you say was the major feedback from that event?

JM: Oh, it was overwhelmingly positive, from what I can tell. We actually had industry spokespeople, we also had people that do this for a hobby. [There was] lots of just sort of intellectual discussion. And it was a great forum for early thinking about emerging technologies. So I think it went over very well.

Was there any major concrete policy stance that Microsoft has made based on that event?

JM: No. It was really just to bring the industry together and have a chat, if you like. It was kind of elbow patch-wearing academics as well as some of the industry people. So it's kind of seeing where the trends are emerging. So obviously we'll take some of that back in-house and think about it, but we haven't actually made any stance as a result.

Are the days numbered for Microsoft traditional languages and the rival Java language, with the growing popularity of these dynamic languages?

JM: I think I'd term Java and C# and C++ as system programming languages, and there will always be a place for system programming languages because they're well suited for rigid, well-defined, industrial-strength programming stuff. Downstream from that, the good system programming languages will be used to bubble up and surface macro functionality. So [there will be a] larger logical box of units of work, if you like, and they'll be stitched together using scripting. And that's where these dynamic languages are really going to play strongly.

Is the CLR unfriendly to dynamic languages?

JM: We made improvements in the .Net Framework 2.0 to be able to do dynamic calls. We're looking at ways that we can make dynamic languages friendlier, but it's certainly not unfriendly to dynamic languages right now. If you look a Jim Hugunin's work in IronPython, you'll see that there's some really good things. In fact, that's why he came to join Microsoft.... He turned around IronPython in a pretty short time frame, so it shows you that it's not unfriendly.

With these projects Phalanger and IronPython, does Microsoft actively support those with developer resources?

JM: No, we don't. They're very much driven by the community.

(Editor's note: IronPython started as a community project but has since been brought into the Microsoft fold).

Is there a short list of specific dynamic languages that you guys are working to extend support for or to make easier to run on .Net?

JM: Not at this stage. We're kind of looking at how dynamic languages in general can run better. So it's really done in exactly the same way as CLR is common across languages. But that's same sort of work we're doing, or thinking of doing, for the runtime.

So whatever improvements or tweaks you make to the CLR for dynamic languages should extend to any dynamic language?

JM: Yes.

So you don't envision a Microsoft version of PHP or Perl or any of these? You're going to let pretty much the outside developers take care of that?

JM: We haven't made any firm plans in that direction right now.... The .Net Framework should really be seen as an industry leader in enabling these sorts of languages. We're constantly evolving it. It's at Net Framework 2.0 right now, 3.0 will be out with Vista. [Version] 3.5 or something like 3.5 will be out with the next set of tools that we release. So we're constantly improving, always looking for what's important in the industry and from our customers. And you'll always see us evolve this and do some innovative work.

Join the PC World newsletter!

Error: Please check your email address.

Our Back to Business guide highlights the best products for you to boost your productivity at home, on the road, at the office, or in the classroom.

Keep up with the latest tech news, reviews and previews by subscribing to the Good Gear Guide newsletter.
Show Comments

Most Popular Reviews

Latest News Articles


PCW Evaluation Team

Azadeh Williams

HP OfficeJet Pro 8730

A smarter way to print for busy small business owners, combining speedy printing with scanning and copying, making it easier to produce high quality documents and images at a touch of a button.

Andrew Grant

HP OfficeJet Pro 8730

I've had a multifunction printer in the office going on 10 years now. It was a neat bit of kit back in the day -- print, copy, scan, fax -- when printing over WiFi felt a bit like magic. It’s seen better days though and an upgrade’s well overdue. This HP OfficeJet Pro 8730 looks like it ticks all the same boxes: print, copy, scan, and fax. (Really? Does anyone fax anything any more? I guess it's good to know the facility’s there, just in case.) Printing over WiFi is more-or- less standard these days.

Ed Dawson

HP OfficeJet Pro 8730

As a freelance writer who is always on the go, I like my technology to be both efficient and effective so I can do my job well. The HP OfficeJet Pro 8730 Inkjet Printer ticks all the boxes in terms of form factor, performance and user interface.

Michael Hargreaves

Windows 10 for Business / Dell XPS 13

I’d happily recommend this touchscreen laptop and Windows 10 as a great way to get serious work done at a desk or on the road.

Aysha Strobbe

Windows 10 / HP Spectre x360

Ultimately, I think the Windows 10 environment is excellent for me as it caters for so many different uses. The inclusion of the Xbox app is also great for when you need some downtime too!

Mark Escubio

Windows 10 / Lenovo Yoga 910

For me, the Xbox Play Anywhere is a great new feature as it allows you to play your current Xbox games with higher resolutions and better graphics without forking out extra cash for another copy. Although available titles are still scarce, but I’m sure it will grow in time.

Featured Content

Latest Jobs

Don’t have an account? Sign up here

Don't have an account? Sign up now

Forgot password?