The Whole Package Matters
The enormous discussion on “Lisp and Smalltalk are dead” (latest count: over 2,900 views) has spawned a parallel thread of discussion within the College of Computing. One of the points of discussion that I found particularly interesting is the discussion of Vinny’s comment, about how Smalltalk wouldn’t be so bad if he could use it in the editor of his choice.
At first, I thought that was an entirely orthogonal issue. What does the editor have to do with the expressiveness of the language? Amy Bruckman called me on that point, and now I see her point. The user interface does matter. How well the interface supports the language does matter. One of the biggest complaints that students had with Squeak when I taught it was the user interface. Complaints ranged from how unpleasant the colors were (which were changeable, but as Nudge points out, when the default doesn’t work well, people aren’t willing to make the choice) to how hard it was to find the menu item you wanted. I chalked that up to being part of the learning curve, but maybe that’s the point.
I’ve been exploring some other languages recently like Ruby, Scala, and various Lisp/Scheme implementations. I’m surprised at how few of these have editors or IDEs that come with them. (With the great exception of DrScheme which is my favorite pedagogical IDE.) Most of these have some kind of Eclipse plug-in, which doesn’t do me any good at all. I have never been able to get Eclipse to install properly, and never got my head around how to use it. On the other hand, they all have Emacs plug-ins, too. I can use Emacs. I’m not great at it (I’m a vi guy from my internship at Bell Labs in 1982), but I can use it. And for the most part, it’s all the same then — it’s reliable and relatively consistent, whatever language I’m playing with.
Several years ago, Don Gentner and Jakob Nielsen wrote a great paper called The Anti-Mac Interface. They considered what kind of interface you’d get if you reliable broke every one of the Mac’s UI guidelines. They found that you resulted in a consistent and powerful user interface. It was no longer good for novices doing occasional tasks. It was great for experts doing regular tasks and who wanted shortcuts and macros.
Nudge points out that the surface level matters, and if that isn’t smooth, people are discouraged from looking deeper. The user interface level to these tools matter, and if they’re not understandable, nobody gets to the expressiveness.