Framework Design Guidelines Class name prefixes

Continuing in the series of discussing topics from the Framework Design Guidelines

 

DO NOT give class names a prefix (e.g., C).

 

KRZYSZTOF CWALINA The only prefix used is I for interfaces (as in

ICollection), but that is for historical reasons. In retrospect, I think it

would have been better to use regular type names. In majority of the cases

developers don’t care that something is an interface and not an abstract

class, for example.

 

BRAD ABRAMS On the other hand, the I prefix on interfaces is a clear

recognition of the influence of COM (and Java) on the .NET Framework.

COM popularized, even institutionalized, the notation that interfaces begin

with I. Although we discussed diverging from this historic pattern we

decided to carry forward the pattern as so many of our users were already

familiar with COM.

 

JEFFREY RICHTER Personally, I like the I prefix and I wish we had more

stuff like this. Little one-character prefixes go a long way toward keeping

code terse and yet descriptive. As I said earlier, I use prefixes for my private

type fields because I find this very useful.

 

One thing I love about the annotation format is that it gives us a chance to share a wide range of view points on the guidelines.  While Krys, Jeff and I all agree that following the current guideline is a good idea, we have different views on what would (or would not) be better from one extreme (no prefixes) to the other extreme (lots of prefixes).   Where do you land?  

And what do you think of the format?  Do you find this kind of color interesting or distracting?