As Microsoft Corp. prepares the final release of its Visual Studio .Net tool set, its vision for Web services and the .Net platform on which those services are based is set to become a reality. Anders Hejlsberg, chief designer of Microsofts object-oriented C# programming language and one of its 20 Distinguished Engineers, spoke to eWeek Senior Editor Peter Galli in an interview about the new language.
eWeek: When did you start work on C#?
Hejlsberg: In late 1998. At that time, we had decided, for a variety of reasons, that we wanted to start building a new platform [.Net], rather than continue with a gradual evolution of COM [Component Object Model] and DNA [Distributed Internet Application], which were the mainline technologies at that time. When youre building a new platform that has so many new things to expose, it makes sense to build a new programming language that can fully exploit the platform. Not that languages like Visual Basic and C++ dont—they definitely do. But we wanted something else, something more efficient and simple.
eWeek: Essentially, why did Microsoft feel the need for the C# language?
Hejlsberg: A lot of C++ programmers told us that language was too complicated for them. It gives you an enormous amount of power, but you only need that power 2 percent of the time. It really is a burden the other 98 percent of the time, as its an endless source of bugs and has many things that we dont need anymore. If we can trade a bit of that power off and have the system do some of that housekeeping for us, then were in a more gentle place and can be more productive.
eWeek: Much has been made of the similarities between the Java and C# languages.
Hejlsberg: Sun uses Java to alternately describe the syntax of the language and the name of the platform. We have separate names for that: C# for the language and .Net Common Language Runtime class libraries for the platform. When it comes specifically to the language syntax, C# and Java are both languages in the C and C++ family. Sure, you could say that C# code looks like Java code, but you could also say that Java code looks like C code. … So whos ripping who off? I dont think anyones ripping anyone off. Programming languages evolve much slower than hardware does; they move at a glacial pace, and we all build on the shoulders of giants here. Java owes a tremendous heritage to C and C++, and Java has, in turn, given inspiration to us.
eWeek: What reason would you give someone to use the C# language rather than Java?
Hejlsberg: The first thing I would ask is, What platform are you programming? If youre programming for the .Net platform and you are going to use ASP [ActiveServer Pages] .Net, well, then, I would argue that you should program in C#. We have also submitted all of C# and a large subset of the .Net Framework to [standards body] ECMA. Ultimately, I am sure this will lead to implementations on other platforms. Java, the language syntax, is not a problem at all to put on our platform. But all of the class libraries that Sun has implemented are a different story.
eWeek: When can we expect something definitive to be announced from ECMA?
Hejlsberg: By the end of the year. If all goes well, the groups will produce their final first drafts later this year, and then, as is typical, this should take a fast track to the International Standards Organization, which could take less than a year.
eWeek: We have so many companies with a Web services vision. What do you see as the future of Web services?
Hejlsberg: These services are just starting, and it is still early. But there are concrete examples of real-world, live Web services out there, things like mapping and traffic services. We are just at the beginning of the adoption curve.