This post made me thinking about naming convention in managed code. I tend to disagree with naming guidelines on MSDN since names in them sound names in a typeless language such as Javascript. Hungarian is still useful since it is about code readability in the first place. When in a middle of a long method you see

a = b + c;

is it a string concatenation or sum of two integers? Is a a local variable or a method parameter? Was it passed by value or by reference? At least most people tend to use underscore in front of class member variables, thanks a lot! In short, I don't mind typeless naming convention (such as camel) in short methods, but I really begin missing Hungarian when reading methods that are more than twenty lines long. "Oh, but methods should fit in a single screen" you might say. Maybe. But in a world of real code they quite often don't.

So I personally think that as soon as C# becomes as common as C++, rules are going to change ;-)