Posted by: sourceoffailure | May 27, 2008

Carpentry Without Power Tools

In the last few days I’ve been converting the notes of Software Carpentry from XML to Markdown. That in itself is a realatively straightforward task. Touch up the converter program here and there, come up with a few workarounds…


One of the things that I learned as a kid was that programs should be intuitive to use. That’s why my generation as children would use programs like KidPix for their artistic creations. Those days are certainly long gone, but the desire for intuitive programs remains.

Programs also include programs that help programmers program or programs that interpret programs. Although I’m not trying to confuse you (as I am referring to IDEs and compilers), my point is that everything is a program, just as Alan Turring said that everything was data. Even English is a sort of program.

Therefore, since all programs must be intuitive, and everything is a program, then all things should be intuitive.

But they’re not.

One of the worst failures of CS is the lack of intuitiveness in some programs. It is understandable that not every single usecase can be explored, but many cases must be explored and unintuitive problems removed. I hate workarounds, and confusing installation. People these days expect (and in my opinion rightly so) everything done in a couple of clicks.

In essence, I support complete sandboxing.

Users are NOT programmers. Most of them [incorrectly] think that programmers preform a black art, and some even consider that programmers celebrate when a user causes a catastrophic error.

Making sure that users can do virtually anything possible — within the reasonable constraints of the program to avoid feature creep — is the only demand that users will put upon programmers in the decade to come.



  1. A bit off-topic:
    Making sure the user can do anything possible […] is the Only demand of this decade? I beg to differ: to me the urgent demand is carefully picking and presenting only 20% most used feature for 80% of the users, and more importantly hiding the rest intelligently. (Microsoft Word is a bad example)

  2. I agree that the most used features should be made available. I just don’t like this:

    Options->Features->Include->My New Feature to conceal things. More then 2 layers of menus is blasphemy.

    That’s not intuitive. We can’t dumbify users: we can hand them their sand-toys, but we should make a full toolkit easily and intuitively availible.

  3. Yes, which is why these should be hidden intelligently not just the let’s-stick-everything-into-menus mentality.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s


%d bloggers like this: