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 asIronPython 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. InfoWorld Editor at Large Paul Krill and Test Center Executive Editor Doug Dineley spoke this week to Jason McConnell, the Visual Studio product manager responsible for all languages at Microsoft, about the state of dynamic languages on .Net.
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.
IW: 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.
IW: 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.
IW: 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.
IW: To what do you attribute the popularity of these new languages? Their advantages in Web development, perhaps?