That’s basically the message we got today concerning the work we’re doing in the C# IDE for VS 2005. I ended up not being able to show people the new stuff on a person by person basis because we ended up getting too much of a backlog of people while that was happening. I ended up doing demos 10 people at a time instead. At first I thought it was because I had some awesome C# hats to give away, but then when people were staying even after I gave them out, I realized they were pretty psyched about the new features.
The biggest hits were generics, nullable and the refactorings. Note: for those who are interested in the first two, you can check out the 2.0 language spec. Refactorings really started making people excited when they realized the issues that they helped you avoid. (I’ll demonstrate some of those issues in a later post). They also saw how with lots of little refactorings you could really fix up your code.
After those major features people were just generally really happy about how the IDE just helped you out more with finding information and fixing problems.
People were mostly dissapointed that the features we were releasing weren’t built on an API that is exposed to them to play with. They liked are refactorings but were hoping for more.
After that I had fun going to Anders’ talk. He had, of course, around 100 people scrunched in trying to listen to him and he covered interesting topics like generics, iterators and anonymous delegates. I tried not to heckle him too much but i did have to once or twice. This was a follow-up to an earlier talk he had had on the new C# 2.0 features. It was clear that many people were very interested in how our code transformation worked (in iterators and anonymous delegates) and his explanations made it a lot clearer what was happening. An astute audience member brought up the issue of structs and issues that happen with copying them and he wondered if generics would solve that problem for him. Unfortunately those issues (which you can read about on Peter Golde’s blog) are still around even in the presense of generics. They don’t occur when structs are boxed/unboxed, rather they occur because structs are copied as they’re passed around.