I do far more work in unmanaged C++ (using ATL/COM) than I do in C#. My C# work is limited to either supporting tools, or the “extracurricular” stuff I do away from home (book writing, shareware, web sites). Lately, I've come to the realization that I'm mixing C# syntax with C++ syntax. However, it doesn't hold the other way around. I always catch myself writing C# code in an unmanaged C++ application (it's usually something like null instead of NULL, or the '.' operator instead of '->'). So what does this mean? It could be that C# syntax is more natural than that of C++ and hence I feel more comfortable using it. Either that or I have the attention span of a 4 year old and blindly start coding without realizing what language I'm supposed to be using.
What do you think? Is there some type of discipline that analyzes the natural feel of language syntax and compares it to others? In other words, a human factors engineer is to UI as ? is to programming language syntax. Someone must have done a study on why the '.' operator is more natural than say a ':' or '->'.