Anders Hejlsberg is one of Microsoft Corp.s handful of distinguished engineers. He is known for having developed the Borland Turbo Pascal compiler and for having been chief architect of Borlands Delphi technology. Hejlsberg left Borland, where he last served as chief engineer, to join Microsoft in 1996. Since joining Microsoft, Hejlsbergs greatest claim to fame has been fathering the C# programming language. Originally code-named Cool, C# was designed to be Microsofts Java killer.
Hejlsberg chatted with Microsoft Watch Editor Mary Jo Foley and eWEEK Senior Editor Darryl K. Taft at the recent Microsoft Tech Ed conference in Orlando, Fla., about the past, present and future of the C# programming language, among other programming-language-related topics.
In [Microsoft Vice President] Paul Flessners keynote at Tech Ed, we heard about how Visual Studio, SQL Server and BizTalk Server are getting more and more tightly integrated. What are the implications of that increasingly tight integration for tools and languages?
For tools, its that the cockpit you sit in gets more and more capabilities. My particular interest for the past couple of years has been to really think deeply about the big impedance mismatch we have between programming languages, C# in particular, and the database world, like SQL—or, for that matter, the XML world, like XQuery and those languages that exist there.
If we just take languages like C# and SQL, whenever I talk to the C# programming crowd—and I tried it in my session [at Tech Ed]—I ask them, "How many of you access a database in your applications"? They laugh and look at me funny, and then they all raise their hands.
So from that I take away that when youre learning to program in C#, youre actually not just learning to program in C#. Youre also learning SQL. And youre also learning all the APIs that go along with bridging that gap. And youre learning a whole style of writing a distributed application. But interestingly, weve come to accept that thats just how it is. But it doesnt necessarily have to be that way. The two worlds are actually surprisingly unintegrated.
On the tools side, were making tremendous progress on getting deeper integration between these two worlds. But I think on the language side, we also could make an enormous amount of progress.
So, theres so much stuff that we could do there to make these worlds better integrated. And thats what weve been thinking about deeply over the past couple of years. And I think you see some of the fruits of that thinking in the "Whidbey" release. Specifically, a feature like generics [which will be part of Whidbey, or Visual Studio 2005] is not only a great tool for programmers because it allows you to parameterize your types and have much more code sharing, and get better compile-time type safety and all of these things that are goodness. But it also strengthens the type system, or makes it more expressive.