Microsoft's Jason Zander on Visual Studio and dynamic languages
The mindsets of the dynamic language programmer and the classical, static language developer are practically different beasts. So can they share the same IDE? We spoke with the man in charge of what aims to be that one IDE, Visual Studio 2008.
Of the two dilemmas, one would probably prefer the type that Microsoft's newly appointed Visual Studio general manager Jason Zander faced this week, to the one facing the SQL Server team: holding a gala launch for a product that actually started shipping last November, as opposed to one that may end up shipping in July.
Zander is a veteran Microsoft developer, having been one of the few, original core developers of the Common Language Runtime that is now the heart of the .NET Framework. He spent eleven years championing that programming system up until last September, when he found himself promoted to a lead role with Visual Studio 2008 -- a product line he had actually been involved with before being moved to .NET over a decade ago.
Last Wednesday at the "Heroes Happen Here" gala launch party, Zander sat down with BetaNews firstly to celebrate the fact that Visual Studio was already well aloft, as launches were concerned, but then to discuss a multitude of topics in Zander's trademark explicit detail. One of them was dynamic languages -- specifically, the re-emergence of quick-and-dirty programming with pliable and embraceable dialects like IronRuby, IronPython, and the prolific D language -- and their newfound role as elements of Visual Studio programming.
But to begin, we touched on a development from Adobe that took place two days earlier: the release of its 1.0 edition of the AIR graphical Web development platform, Silverlight's principal nemesis.
SCOTT FULTON, BetaNews: Is there any kind of inherent advantage, is there more in terms of building a stand-alone, rich Web application that a developer can do with Silverlight and Visual Studio that he cannot accomplish today with AIR 1.0 and Flex Builder 3?
Microsoft General Manager for Visual Studio Developer Division, Jason Zander |
JASON ZANDER, General Manager, Visual Studio Developer Division, Microsoft: I think the big thing you're going to get with Silverlight...is the richest possible solution. Because sometimes the problem you can have with a solution that runs everywhere is, you're basically bringing yourself down to a common set of technologies. Your look-and-feel may or may not match the environment that you're in, things like that. So with Silverlight, we've really tried to make sure that you can take XAML and you can do that cross-platform, so you can use it on the desktop application itself. We give you .NET consistently across the board. Those are the key things that we're trying to concentrate on.
I think the interesting question on those other platforms is, do you want to really deeply take advantage of the platform you're running on, or do you want to have more like a box where your app is running? I use WPF [Windows Presentation Foundation], I can integrate directly with the coding system on Windows itself. I can integrate with Search, I can integrate with the local disk, very seamlessly because it's taking advantage of the operating system.
SCOTT FULTON: You've had the good fortune of being able to work with .NET Framework as well as Visual Studio, and you played a role in implementing dynamic languages.
JASON ZANDER: The dynamic language stuff, I started that about three years ago [when] I hired a guy named Jim Hugunin, who had done a compiler called IronPython. [At first], he had set out to prove why .NET was really bad [for dynamic] languages, but he's such a great, professional developer that by the time he actually went in and implemented it and did it the right way, he said, "Wow, this stuff's actually good!" and then I invited him to come out and meet with the team.
Since then, we took a bunch of those core components that Jim came up with -- [including] the Dynamic Language Runtime which is a layer that sits on top of the Common Language Runtime, [and which] makes it really easy to write dynamic languages -- and plugged them into the environment. We've done Ruby and Python so far.
SCOTT FULTON: We saw in the keynote, during the demos, the case for why Web application development needs its own studio, its own Expression aside from Visual Studio. With your experience in dynamic languages, and the differences in the mindset of somebody who is developing and coding essentially on the fly [and that of a static language programmer], is there a case where a DLR developer needs his own different toolset, maybe not so much Visual Studio but something like it, its own IDE?
JASON ZANDER: I think that Visual Studio has actually translated quite well. In fact, we have dynamic languages that plug in with Visual Studio. The normal artifacts of [developing programs] -- "I've got code, I want to do Intellisense, I want to debug it" -- all those things are very consistent for [both] dynamic and functional languages.
Now, I think with dynamic languages, typically what you're more used to is this kind of [mindset] where you want to go type in this chunk of code, execute it, see it run, in a kind of "continue-to-move" environment. Otherwise I could be typing stuff in, I could use EMACS for that if I wanted to. You could go old school if you want. I think with a dynamic language, you really want that interactivity: Type it in and see what happens, play with it, and keep going. We have that in Visual Studio as well; it's called the Immediate Window.
I do think there are some great trends with that, and you can actually do more in the environment going forward that would make that feel very comfortable for a dynamic language programmer. But beyond that, just as you can embed JavaScript -- which is a dynamic language -- inside of HTML, I think we're going to be able to do the same kind of thing, I think it'll be pretty consistent.
Next: Can Python break into PHP territory?