The language studied is C#.
I am far from certain that this type of study is the 'right' way to check language usability. But at least it is a bit more scientific than introspection...
Comments?
(I wasn't familiar with Cognitive Dimensions before reading this paper. A quick Google search produced this link which has some more useful information and bibliography.)
We had five more or less experienced C++ programmers do something in C# using Visual Studio as the programming environment. Then we had them do a questionnary. Some of them were a bit confused about parts of the language, or in using Visual Studio. We believe one must be critical when looking at the data we collected, and that more research in this area is needed.
Is that really all? Well, some of the comments they collected were actually interesting, especially the one about IntelliSense. I've never thought about that as something that encourages bottom-up design, but it probably is (although I still consider it a good thing, and would have, even if I weren't partly a bottom-up-er myself).
The idea of cognitive dimensions seems like an interesting viewpoint, but like all theories or models in social science, it's a bit fluffy, can be applied to anything, and the important thing isn't which one you use (although it needs to be fashionable), but how good you are at pointing out interesting stuff in light of it.
As others have said the sample size is too small to draw any solid conclusion. My take home conclusions:
- There seemed to be a few problems that were environment not prog. lang. related. Give 'em Emacs, I say!
- Gosh C# is complex! Inherits/overrides/default super classes etc! If there weren't so many concepts and special cases I doubt there'd be so many problems. I'd like so see programmers going from Common Lisp, say, to Scheme or maybe SML to Haskell (something where the difference in syntax is comparable to the jump from C++ to C#).
You say this as though it's automatically a Good Thing...