Recording Venue:
Guest(s): Anders Hejlsberg
Host(s): Markus
In this episode we have the pleasure of talking to Anders Hejlsberg, Chief Language Strategist at Microsoft. We started by discussing his more distant past, namely, his involvement with Turbo Pascal and Borland’s Delphi. We then looked at the influences Delphi had on C# and how C# evolved from Delphi. In the next section we discussed a couple of general language design issues, among them components and checked vs. unchecked exceptions. Next, we discussed interesting issues about languages of the future, static vs. dynamic typing, functional programming, meta programming as well as the importance of good support for concurrency. We concluded the discussion by looking at the interplay between languages and IDEs.
It looks like this podcast is only 3:17. You may want to double check the file as this only gets into the very beginning of the interview. Thanks for the great work!
there seems to be some screwup in the delivery system, since the file actually has 44MB on the server. I renamed it there, changed the URL. Now it seems to work. Strange.
Markus
1. the force of Hejlsberg is strong on the minds of the weak (like me)
When i listen to Mr Hejlsberg i think “why would i even consider using java”
it takes a couple of days before i start wondering how significant the differences really are
[for the record -I am absolutely NOT interested in ‘language wars’ -and I am talking about how (natural) language relates to (programming)language wars]
2. i had a dream where Leo Laporte did the same interview -it sounded real nice (in a coke commercial kind of way) BUT -in my dream Laporte didn’t mention Scala (which was exactly the right question for Hejlsberg (whose response was worthy of a presidential candidate btw -“yes, we do type inference too” ) )
3. there is another (older but also very good) audio interview with Hejlsberg by Bruce Eckel at http://www.mindviewinc.com/mediacast/interviews/Index.php)
Pete F
Markus, you was too soft on him, instead of asking just things like “what did you get right in C#?” you should’ve asked “what did you get wrong?”. As another commenter said he truly speaks like a politician, he compared frequently C# with Java, pointing things that were designed correctly in C# but ignoring the fact that when C# was designed most of the issues in Java were well known and this fact influenced it. It felt that C# and Java were designed in parallel by two diverging teams, one getting everything right and the other everything wrong. I’m not trying to defend Java here (C# is a superior language, Java’s generics model is problematic, etc.) only pissed off that the presentation was biased against Java (instead of spending more time on interesting .net features). Another thing I noticed is how Anders avoided mentioning influence from languages other than Delphi on C#: it’s a lie that they “discovered” in the middle of the design of LINQ that they could reuse the primitives to do other forms of queries, this was the intent since the beginning, Erik Meijer was involved in Haskell and the theory behind monad comprehensions was highly influential to many aspects of LINQ. This tastes particularly bitter after hearing he say that functional languages don’t work in the real world (even when something as abstract as monads is the basis for LINQ). But I digress, the point is that many ideas being included in C# were tested earlier in other languages, most of them implemented by the great researchers at Microsoft Research, and they knowingly based their research on proven languages like Haskell, SML, etc., so they should at least acknowledge that C# builds upon those (even the Java influence, which is obvious, was ignored), not claim the glories and joke that they don’t work in the real world (i.e. the particular languages may not be mainstream, but Smalltalk and Eiffel aren’t either, but it doesn’t mean that OO doesn’t work in the real world).
Man, this is the second time recently that this (even then excellent) podcast gets into my nerves (the other time was the one-sided SOAP vs. REST debate by the SOAP guy), I really think that you guys should watch out for these kinds of one-sided statements that end up feeling like propaganda instead of arguments.
I am not going to comment on the specific issues you raise, since I don’t know the details, and I cannot judge whether Anders’ position is true or what you say. Anders’ position is certainly plausible, and he is certainly a credible person.
You say:
“Markus, you was too soft on him,”
and
“I really think that you guys should watch out for these kinds of one-sided statements that end up feeling like propaganda instead of arguments.”
I don’t think that our job is to be “hard on people”. I don’t consider myself a “journalist”, who has to find the truth behind things. SE Radio is a forum for interesting people to state their opinion. You as listeners can then judge whether what people say makes sense or not – and you can comment if you want to express your opinion (as you did, which is fine).
As you said you’re not a journalist or whatever, it’s not a matter of seeking the truth. You asked him a couple of times about C# and in the answer he kept going back to say how it was better than Java, insetad of focusing on the language itself. It wasn’t something that happened just once in the interview, he kept going back to a comparison that wasn’t necessary (C# is good on its own merits, not because Java “sucks”). In other episodes you guys usually press on the technical merits and the engineering side of the issues, even when the interviewee tries to hand wave certain subjects, which IMHO is the quality that makes this the best show on software development.
Now on the “journalism” thing, every interviewee has their own agenda, public or private, and the shows are not just about “interesting people stating their opinion”, you guys usually have specific topics in mind, get prepared before the interviews and have a good control of the conversation flow. In many other shows you guys debated certain statements made and tried to avoid politics or (too) subjective claims. I’m just saying that this episode strayed a little from the usual path.
I liked that interview. I haven’t learnt too much about the C# language and its new features (I could read after it anytime) but I have heard a lot about Mr. Hejlsberg’s point of view which was also edifying.
When citing continouosly Java he would have explain why it’s still standing and playing well, working much better on serverside than C#.
Like always, the answer is not at the extreme. It’s somewhere in between. Continually in the programming language practice, in the implementation of programming languages for the industry, we borrow from academia. Right now, we’re seeing a great harvesting of ideas from functional programming which has been going on in academia for God knows how long. I think the magic here is you’ve got to do both.