Do you always use the Visual C# compiler, or do you ever use versions developed by the Mono or DotGNU projects?
I day to day use Visual Studio and Visual C# as that’s the environment I live in. I occasionally check out the Mono project or some of the other projects, but that’s more intellectual curiosity, rather than my day to day tool.
In your opinion, what lasting legacy has C# brought to Computer development?
We all stand on the shoulders of giants here and every language builds on what went before it so we owe a lot to C, C++, Java, Delphi, all of these other things that came before us…we now hope to deliver our own incremental value.
I would say I’m very happy that C# definitely brought a big productivity boost to developers on the Windows platform and we continue to see that.
I think that C# is becoming one of the first widely adopted multi paradigm programming languages out there. With C# you can do object oriented programming, you can do procedural programming, now you can also do functional programming with a bunch of the extensions we’ve added in C# 3.0. We’re looking at C# 4.0 supporting dynamic programming and so we aim to harvest the best from all of these previously distinct language categories and deliver it all in a single language.
In terms of specific contributions, I think the work we’ve done in C# 3.0 on language integrated queries certainly seems to be inspiring lots of other languages out there. I’m very happy with that and I’m certainly hoping that in 10 years that there will be no languages where query isn’t just an automatic feature: it will be a feature that you must have. So I think we’ve certainly advanced the state of the art there.
Has the popularity of the language surprised you at all?
It would have been presumptuous of me to say ‘so today we’re starting .NET and in 8 years we will own half of the world’s development’ or whatever. You can hope, but I have been pleasantly surprised.
Certainly we have labored hard to create a quality product, so it’s nice to see that we’re being rewarded with lots of usage. At the end of the day, that’s what keeps us going, knowing hundreds of thousands, if not millions of programmers use the stuff you work on day and you make their life better (hopefully!)
What are you working on now?
I’m always working on the next release, so you can add one and deduce we’re working on C#4.0!
Do you have any idea when that release will be coming out?
I don’t think we’re saying officially now, but we’re on a cadence of shipping every two years or so, or at least that’s what we hope to do. So 2010 sometime hopefully... there’s a set of features that we’re working on there that we’re actually going to talk about at the PDC (Professional Developers Conference) at the end of October. We’re giving some of the first presentations on what we’re doing.
Where do you think programming languages will be heading in the future, particularly in the next 5 to 20 years?
I’ve been doing this now for 25 or almost 30 years, and I remember some early interviews that I gave after Turbo Pascal became very popular. People would always ask me where programming will be in 20 or so years (this is 1983 if you go back.) Of course, back then, the first thing out of one’s mouth was well ‘maybe we won’t even be programming at all and maybe we’ll actually just be telling computers what to do. If we’re doing any programming at all it’s likely to be visual and we’ll just be moving around software ICs and drawing lines and boxes’.
Lo and behold here we are 25 years later. We’re still programming in text and the programs look almost the same as they did 25 years ago. Yep, we’ve made a little bit of progress but it’s a lot slower than everyone expected.