More Generic parameter naming: We are listening AND changing


I am sure many of you have been following the saga around naming of type parameters.  We start with the simple K, V style naming and got flamed on the MSDN feedback site.  We did lots of thinking about it internally and decided to change the guidelines in response to the feedback.    And you guessed it, we got flamed by folks that liked it the old way, but never chimed in… My favorite:

“I want to puke from looking at the T prefixes. These guidelines are crap”

 

Oh well, you can’t make everyone happy… 😉

 

But the real joy for me was seeing the comment below.  If this comment is broadly true of Microsoft, then we are getting the community message for real…

 

As far as MS being open, of course they are. I think perhaps people [who opposed the change] just ignored this [ladybug thread] cause they didn’t think MS was gonna change [anything] (I would have bet 100:1 MS wouldn’t do this) — so put out a cry to everyone you know to complain to MS. They’ll fix this.” — Michael Giagnocavo

 

 

Whatever camp you are in on this issue, the lesson is the same, give us your feedback, we are listening and changing the product in light of it! 

 

 

Comments (13)

  1. ShadowChaser says:

    The change at Microsoft in how they treat their ISVs and community developers is just amazing.

    The classic thinking was that Microsoft had pretty good documentation but only listed to the large development shops. It was adequate for most developers (in contrast to other companies that have horrible documentation or SDKs).

    About a two years ago I started to notice a change. It started with the release of Visual Studio .NET 2003. "Microsoft is releasing a full upgrade to their existing users for such a low cost??". I thought that was amazing and kept wondering what the catch was.. trial version, etc? There wasn’t one… it was like Christmas (or other winter holiday of choice) in Microsoft developer land!

    Visual Studio .NET 2003 added WinForms for C++ (although strange.. in H files?) and it got me inspired to start learning more about .NET in general.

    I came across the FxCop was using the tool routinely. I encountered a strange issue or two or possible false positives, and noticed they had an E-Mail on the site! An actual E-Mail to a team within Microsoft. I E-Mailed them with my findings and they took my ideas/possible bugs to the FxCop "Style Gurus". A few days later I got a response back explaining why some of my ideas might not have been good naming-wise, and that one or two of them might be added to the ruleset. Having the opportunity to communicate with a Microsoft "product team" (even though technically it isn’t) really surprised me. It even surprised my normally pro-Linux employer, who by this point was starting to warm up to Microsoft.

    That event was probably one of the reasons they eventually decided to allow me to embark on starting the development of a new product – using .NET.

    The blogs and the Visual Studio product support area are great too – I’ve been able to post some of the major .NET issues that have hindered our development and have them get fixed in the next version! I would have *never* thought a large multinational company would ever have such a fine-grained bug reporting system, let alone Microsoft (by the traditional thinking, anyways).

    It’s great seeing the top suggestions and bugs get addressed even though they were initially marked as wontfix/postponed/bydesign.

    The work everyone is doing there is really paying off. Not only is bringing new developers under the Microsoft umbrella and making your existing developers ecstatic, it’s making your competetors look REALLY bad! 🙂

  2. Uwe Keim says:

    Very good decision, indeed!

  3. Frans Bouma says:

    Great decision! Generic code is already more complex than normal code, although some think it isn’t, and having single characters for parameter names is not helping, because what if the generic type eats 4 types? 🙂

    So I’m all for the descriptive names!

  4. Ben Monroe says:

    > And you guessed it, we got flamed by folks that

    > liked it the old way, but never chimed in…

    I typically check the feedback site 3-6 times a day, depending on my available time. Maybe that is why I am rated as the top validator at the moment. I read through many of the suggestins as well and probably vote on maybe a 1/3 of them (rough estimate). The suggestion in question is FDBK10547. I remember reading it when it originally was openned. I strongly disagreed with it so voted a 1 — the lowest possible — but did not bother to leave any comments. Coming from a C++ background, the suggestion seemed like utter nonsense to me and Microsoft already had it right so I did not feel that it was necesary to defend my position.

    It currently is rated 3.71, which is only slightly higher than average (3). There are many vocal comments in support of the change, but the many voters show that it is not a high-priority change. I would expect a mid 4.5-5.0 to have higher priority and show general consensus for an issue.

    Are comments given so much more consideration? If so, perhaps I should try to leave more written feedback as well. However, in this case, there as just so many comments it’s hard to read them all, much less debate them.

    I am extremely happy with feedback site. I have been able to report several bugs and suggestions, communicate with Microsoft, and express my opinions regarding many topics that are important to me. Thank you for the opportunity.

  5. a. says:

    wow, looks like delphi.

    which is good, if you are writing delphi code, but in c#. well, not the best choice.

  6. Girish says:

    These are just *guidelines* right? its not like C# compiler will choke if your ArrayList does not have a descriptive name.. Right? Then I dont get the problem either way.. 🙂

    Oh well,

  7. You made the right choice. I would wager that the person who thinks he’ll puke at the T prefix doesn’t currently puke at the I prefix for interfaces.
    <br>
    <br>Over time, it will sink in as a good practice.

  8. Mike Dunn says:

    You can be confident that you’ve made the right choice when the people opposed to the decision can’t come up with a better argument than "it sucks" or ‘it’s crap". 😉

  9. T, K, V etc are comming from c++ right? If so than at the time it was being decided for c++, was no input taken form the community then ?

    And btw i never had any problem with T or K etc etc in generics. They are just super fine.

  10. damien morton says:

    love the use of unicode

    compare:

    class Bar<TFoo>;

    with:

    class Bar<τFoo>;

    Greek letter Tau makes a good substitute for T.

    APL here we come… whoohoo