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.
IW: 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.
IW: 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.
IW: 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.
IW: 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.
IW: Is the CLR unfriendly to dynamic languages?