Wednesday, May 14, 2003


Worse ISN'T Better.

Human Factors Design of APIs.

It's a huge leap to recognize this reality.  Graham Glass, the creator of GLUE and founder of The Mind Electric (TME), blogs:

TME has a philosophy for designing software that I would like to share. The starting point for anything we build is the "user experience". Before we even think about stuff like standards compliance or implementation, we focus on what a user of our software/APIs will experience. Simplicity is the #1 objective. Only when this has been accomplished (at least on paper) do we talk about implementation details. Only when this has been simplified do we think about standards compliance. Even though this might sound backwards, it always seems to work out well in the end.

Developing webservices with GLUE is an extremely pleasant experience (you can see a viewlet of it in action here).   Thus, simplicity concerns override all other concerns, it does remind me of the "worse is better" philosophy to language design.

[::Manageability::]

Let's be crystal clear about something, Carlos :)  GLUE has nothing to do with Worse is Better!  Graham has always had a knack for developing exceptionally simple APIs that can do complex things, and done it in a way that was just right at the same time.  Worse doesn't factor into it.  Like, with Voyager, the idea was simply that you shouldn't have to do much of anything to get a remote call to work.  You should just deal with POJOs and objects, and the rest should be automatic.  This is fairly correct reasoning, and rather than corrupt that vision with the hard realities of dealing with Java, ObjectSpace just did the heavy lifting to make it a reality.

Similarly, with GLUE, Graham's done the same thing.  Posit the idea API, then bang your head into the wall until that ideal API becomes a reality.  My hat is off...if more of us did the same thing, staring headlong into the impossible, all of our work would be better.


11:57:12 PM