Usability Studies versus Aesthetics

Bill Venners: How much of the design of C# was based on usability
research, how much on marketing choices, and how much on aesthetics?

Anders Hejlsberg: Ultimately, good language design boils down to
assembling a team of people who have good taste. It boils down to
programming aesthetics, as you are saying. Good taste is extremely subjective
and hard to define, but you can sort of recognize it when you see it. And I don't
think any number of usability studies can give you what taste gives you,
because usability studies tend to be very vertical. A study might ask, "What do
you think of this particular feature?" But it's not easy to ask, "What do you think
of this language?" Where would you begin? How can you possibly attack that in
a two hour usability study? It's just impossible.

Bruce Eckel: Somebody has to have depth of understanding.

Anders Hejlsberg: Working with a programming language is a much
more immersive process. People don't really come to appreciate a
programming language until they've worked with it for months. And then they
may gradually realize, "Wow, this is really comfortable." You just can't do that
very quickly.

That being said, we did a bunch of usability studies, but they were more
vertically targeted on particular features.

Bill Venners: For example?

Anders Hejlsberg: Most of it was actually usability studies of IDE
features. We might
ask, "Can people understand that they right click to do this or that?" We did
some usability studies for the pure language syntax itself—I think we did some
with properties and events, for example—but it was not necessary really.

I don't think that you get as high a yield from usability studies for language
features as for IDE features. IDEs are very interactive. You can watch users
right click menu items and get good feedback. For programming languages,
the question is more, "Is it conceptually understandable?" That's done very well
by having a customer advisory councils, sounding boards. You want places
where you can say, "Here's what we're thinking about doing for this particular
new feature. What do you all think?" And you actually urge them to shoot as
many holes in it as possible, because you'd much rather know before you put
in the feature than after. So unless a language feature is a complete
slam dunk, we tend to make use of those kinds of sounding boards.

Next Week

Come back Monday, August 11 for part VI of a conversation with Elliotte Rusty Harold
about the design of the XOM API.
I am now staggering the publication of several interviews at once, to give the reader
variety. The next installment of this interview with Anders Hejlsberg will appear
on Monday, August 18.
If you'd like to receive a brief weekly email
announcing new articles at Artima.com, please subscribe to
the Artima Newsletter.

Talk Back!

Have an opinion about the design principles presented in this article?
Discuss this article in the News & Ideas Forum topic,
The C# Design Process.

Anders Hejlsberg was not the first Artima interviewee to mention taste. Jim Waldo made almost
an identical comment about building a team of tasteful programmers in his interview:http://www.artima.com/intv/waldo10.html