Anders Hejlsberg on

For those of you who haven’t seen this, TheServerSide.NET interviewed Anders Hejlsberg, chief designer of the C# language. If you’re interested in the design of the C# language, untyped versus typed languages and C# futures, you’ll definitely want to listen or read the transcript for this interview

Some choice quotes below:

On C# futures beyond C# 2.0: “One of the things that made .NET incredibly successful was the fact that we took all of that housekeeping and put it in the platform, garbage collection, type safety, exception handling, whatever, all these things that programmers just get wrong, if they have to do it manually. Put them in the platform, just allow you to think about the algorithms. I am like trying to shift my focus to that space and try to do some of those same things. Truly integrate the database with the programing language. Of course, that is a very broad vision and many people lie on the rocks of unsuccessful database integration, and I am hoping not to be one of them, but I think we have some interesting thoughts about it.”

Here’s another gem A commonly asked question is whether “yield”, the identifier for C# 2.0 iterators, is a keyword. Anders goes on to explain why it’s not (versioning) and how they work around not making it an identifier

Why is introducing a new keyword such a pain? I just never understood that.

Because if you have an identifier by the same name as that keyword, that identifier is now an error. So let’s say that we had made the yield keyword. Well it is not actually a keyword. If you look at the way we design so yield is used by iterators in C# and there are two new statements, yield return and yield break. But the yield word in yield return is actually not a keyword, it is the identifier yield coming immediately before the keyword return that constitutes yield return, because that was never a valid thing to say before. But you can still have, in your financial application, a parameter called double yield, that is the yield of your investments or whatever and you will not break that code. It is very subtle, but you know, it is the real world right. If we tell people, hey your C# 2.0 upgrade today, and bam, the first thing that happens is all their code breaks and it is just not a happy experience. You really have to make sure that the barrier to entry is nonexistent.



Comments (5)

  1. Kevin Daly says:

    That was a great interview – one of the things that impresses me about Anders Hejlsberg is that he’s at least one very-bright-architect-guru-type-person who concentrates on what it’s like for real human beings actually writing sofware, rather than pushing language/API/etc. designs overly influenced by arguments of the "How many angels can dance on the head of a pin?" variety, as some people at his level sadly do.

    PS. I think the importance of property support is often overlooked – also I’m pretty sure it creates a more natural fit with visual designers (we could compare on one side the RAD tools for Delphi, Visual Basic and C#, and on the other those for Java. See my point? Oh well it’s early and I haven’t had any coffee so I’m probably not making sense yet).

  2. Great to hear more from the Dane in the core of C# 🙂

    Meet one of his old friends a year ago, he told a little funny thing. His presentation was done through Linux, OpenOffice and Mono, but his bottomline was…Mono can do whatever they want to but the can’t beat Anders 🙂

  3. Hey Kevin, I totally agree with you, Anders is down to earth and really wants to solve the everyday problems developers face…

  4. I’m a fairly recent "convert" to C#, and I’ve become a huge fan of Anders. He’s truly one of a kind and very down-to-earth. Now that I’ve been C-Sharping for quite a while, I’ve come to the conclusion that, because of the rise of offshore outsourcing, more developers should start to learn C#. According to Juval Lowy and others, both the language and IDE are going to be increasingly targeted toward the type of developer who has a deeper understanding of OOP and component-oriented principles. My opinion is that it is precisely this type of developer who is going to be better able to compete in this marketplace and form a kind of niche for the types of jobs that are less likely to be shipped overseas. It boils down to this: those with more valuable and sought-after skills are going to be more competitive than those who’s skills are more commonplace and easily replaceable. (See my blog for a more detailed explanation of my reasonsing: