In the comments to my “What's coming up in C# beyond Whidbey”, RichB makes the following comment:
I sometimes wonder who Microsoft ask for these opinions. I suspect it's internal Microsoft developers and Wintellect/DevelopMentor trainers.
With all due respect, these type of people are not your average C# programmer. In the 3.5 years I've been coding in C#, I've yet to work with anyone who wasn't bothered about E&C.
This is an interesting topic, and Rich brings up another topic that I'll touch on a bit later.
There are three sources that we use for this sort of information. The first is a small group of users that we meet with on a regular basis. This group is a rough cross-section of our target users, and there are no internal Microsoft developers on it. IIRC, we have one person who is a trainer.
The second source is by talking with customers through email, on newsgroups, at user groups, and at conferences.
A third source of data is the information that we get by watching C# users program in our usability lab. We can examine, for example, whether a specific C# user programs in a way that E&C would be beneficial.
The feedback we got around E&C has been fairly polarized. There is one group who feels the way Rich does, and really wants E&C. There is another group that actively doesn't want E&C, as they feel that it encourages the wrong kind of programming. And then there's a group in the middle who typically see the value of E&C but don't think it's critical.
Rich also brings up another interesting point. Given two features of equal utility, we will try to favor the one that can only be done by Microsoft, and not by a third party.
In the case of refactoring, however, there are two considerations:
- Because the C# IDE has very good information about your code, it can do a better job at refactoring, and provide features such as cross-project rename.
- Refactoring can provide a large increase in productivity. While it's true that users can buy a third-party add-in, many customers have told us that they expect Microsoft to provide features such as refactoring, and not force them to buy a third-party tool
I hope that makes it a bit clearer. We are hoping to do some things to expand the group from which we gather such feedback.