Microsoft Distinguished Engineer Anders Hejlsberg is chief architect of the Visual C# language and has been a key developer of the company's .Net application development technology. Previously, Hejlsberg wrote TurboPascal when he was with Borland Software. He also was chief architect of Borland's Delphi technology. InfoWorld editor-at-large Paul Krill talked with Hejlsberg at the Microsoft TechEd 2005 conference in Orlando, Fla., this week about a range of application development topics.
InfoWorld: What was the intention with Visual C#? C++ and Visual Basic have been successful. What was the need for C#?
Hejlsberg: It was effectively to create a modern language in the curly brace family, if you will. The C family of languages, they're essentially known as the curly brace languages because when you write code in C, you use curly braces. So [we created] a language that was sort of rooted in the C family of programming languages, where we find C itself and C++ and Java, but tailored for the .Net platform. That's sort of in a nutshell. If you want to look a little bit more about what are the things that made C# special as a programming language, say compared to C++ or Java, we could talk about that, or about how .Net sets itself apart [from Java] or [other languages].
InfoWorld: So how is it set apart from C++?
Hejlsberg: C++ is what we call an unmanaged language or a language that does not have all of the newer features that characterize languages like Java or C#, like garbage collection, type safety, exception handling or mandatory exception handling, code verification, [and] metadata. All of those things are sort of things that characterize .Net and Java at the run-time environment. And C# is sort of a language that was created to be a natural evolution of C++ onto the .Net platform. [The priority] first and foremost [was] programmer productivity. I mean all of what I've done for the 25 years I've been in this industry [has been] sort of a relentless quest for more programmer productivity and then C# is just sort of continuing that tradition, right?
InfoWorld: What's the user base of C# as opposed to Visual Basic or C++?
Hejlsberg: It depends on how you count. If you count in Visual Basic, VB6 and VBA (Visual Basic for Applications) and VB.Net and whatever, it's obviously an enormous user base that dwarfs practically everything else. If you look at C# vs. VB.NET vs. C++, [managed] C++ on the .Net run time, I'd say C# and VB are about neck and neck. I believe they're about 45 and 45 percent and then managed C++ is the remaining 10 percent or something like that, I think. But that's just if you look at who runs their code on .Net. I don't even think I have numbers in my head about how many VB6 programmers there are in the world, but it's in the millions, and the same is true for C++.
InfoWorld: What is your take on the Edit and Continue feature that was added to Visual C#?