I went to Anders’ C# 2.0 features sessions and saw him walk through generics, anonymous methods, partial classes, iterators, and more. The funny thing is I saw a very similar presentation from him almost 2 years ago, even some of the slide animations were the same. Despite that, it was great to see the final features and to have him walk through some of the stuff that has changed since that time. While the session was good, it was nothing compared to the whiteboard session. Right after the main session I headed to the cabana and got a front row seat, and then for the next hour basically got to ask Anders just about anything I wanted. (There was only about 50 or so people there at most, I was surprised there wasn't more)
So I started the talk off right and asked him what C-Omega features we might see in the next version of C#. He laughed a little and said they were not ready to talk about C# 3.0 yet, but that the problems C-Omega tries to solve are definitely something they are looking at. Basically they are recognizing that most apps are data driven and that there is tremendous value in making it easier to work with relational databases using regular C# syntax. He also said they had been working on C# 3.0 for 2 years now and some of the C-Omega guys were on the team. All good signs.
After a couple questions from other people I was able to get in the other question I was dying to ask. What does Anders think about the resurgence in dynamic typing from languages like Python. Basically he said that he understands what benefits people are getting from dynamic typing, but he thinks they can get the benefits of dynamic typing without sacrificing strong typing. He talked about inferring type (what anonymous methods do now with delegates) and how that might be a way to get the coding speed and ease without sacrificing the strongly typed information. Very interesting stuff.
I also clarified that generics will be part of the CLS and he went into some of the specific on how they made that decision. He also talked about a ton of other stuff, why they made the decisions they did when it came to lots of the old and new features in C#.
The white board session was just awesome, how often do you get to sit down and ask whatever question you want to a distinguished engineer?