OddThinking

A blog for odd things and odd thoughts.

Rational 1000: The Byzantine Keyboard

This is one of a short series of nostalgic reminiscences about the Rational 1000.

The most astonishing part of the GUI greeted you before you had even logged on: the keyboard template attached to the keyboard.

The keyboards themselves were pretty standard 101-key IBM keyboards. They had 12 function keys across the top, F1 – F12. All of them were assigned to special operations.

To the right of the function keys, they had Print Screen, Scroll Lock and Pause keys which, let’s face it, are pretty useless keys. They had some more operations to assign to function keys. So Rational decided to dub them F13, F14 and F15 respectively. So that’s 15 function keys!

Hmmm… Rational still had more operations that would be useful to bind to a function key. What could they do? Hey, there’s a Shift button right? So really, there are 30 function keys!

No wait! There’s an ALT button and a CTRL button too! 60 function keys! F1, SHIFT+F1, CTRL+F1, ALT+F1 all the way up to ALT+F15.

But why stop here? There’s SHIFT+ALT+F1, SHIFT+CTRL+F1, CTRL+ALT+F1 – that leads to 105 function keys!

If there is such a thing as going too far, the Rational UI developers hadn’t heard of it.

SHIFT…. + CTRL… + ALT… + F15…

One hundred and twenty function keys to assign!

Still going, they redefined the Insert/Delete, Home/End and PageUp/Down for their own purposes. These weren’t more function keys but special purpose keys that were frequently used.

When first I sat down to use this keyboard, I gasped at the ridiculous cardboard template that had been velcroed to the keyboard – its 120 function key definitions, in a tiny font, extending over an inch past the back of the keyboard.

“You have got to be kidding!” I thought, as I hunted and pecked for the right key.

Three months later of intensive development later, I was hooked. I had learned most of the keys, and I loved being able to do any operation I could think of with “one” button. Like an adept Tekken player, I could kick buggy code’s arse with kung fu debug combos that the code was never expecting.

Check the syntax of this code? Reformat it to the corporate standard? Update all the other files from configuration management? Incrementally rebuild all the files that depend on it? Execute the unit tests? Check it in, and publish the branch? BAM, BAM, BAM. It’s done!

The computer mouse was just starting to become widespread in the office environment, and I watched with horror as a cube-dwelling neighbour tried a beta-test of mouse support. Wuss! I went the other way. I dangled my mouse over a cubicle wall for a month, to clear up the desk space. Everything you could do with the mouse could be done faster with a keyboard shortcut.

It was eventually restored to its rightful position when I had to debug some distributed code, over 17 windows. The windows automatically arranged themselves up on my Xterm so I could see them all at once, but I needed a faster way to select between them than stepping through them one-by-one.

I would never defend the use of such a UI for occasional users. I was using this system for most of the working day, for weeks at a time.

It isn’t easy on the new users either. I had to go through extensive training to get up to speed.

But once I was there… wow!


Comments

  1. Not sure what this has to do with the Rational environment? Certainly lots of other apps came with hilariously big keyboard templates which fully populate the function keys and all modifier combinations. WordPerfect comes to mind.

    As further background, see Tog on the keyboard vs. mouse debate.

    Personally I am pretty much convinced that the command-line-with-completion is the way to go as a compromise between keyboard shortcuts (which are difficult to remember) and graphical widgets (which can interrupt your flow). Like ctrl-space in quicksilver, or meta-x in emacs.

  2. I had a WordPerfect keyboard template back in the days of only 10 function keys and 4.77 MHz; it was big, but not nearly this big!

  3. Tog sounds like a mouse fanboy. I guess he would sound like a mouse fanboy. However, it was surprising to read that it could be quicker to use a mouse than a keyboard.

    I’m actually totally with him when he says “use lower level thinking instead of higher level thinking when doing most tasks”, but that to me equates to muscle memory, which you simply cannot do with a mouse (to some extent). I’ve had a “CTRL-Z” moment, where I’ve moved my fingers do to a “CTRL-Z” (undo), only in real life, when I was drawing with a pencil. I was quite surprised that I didn’t feel keys, and then slightly embarrassed.

    I couldn’t possibly have done that with a mouse (ie: move my hand unconsciously to the non-existent mouse, click “edit”, then “undo”).

    Having said that, I’ve often used the mouse for redo. This is because the key combinations are different for different programs, either CTRL-Y or CTRL-R. Because they don’t allow the formation of muscle memory, a mouse tends to be faster.

    My defence of the keyboard is this: Imagine you had to do everything with the mouse, even “type” by clicking on a fake keyboard. We can clearly see that the keyboard would be much better at this. The keyboard is better at typing!

    Now let’s look at the typical “command prompt” scenario. Imagine a million small tools. To access them with a mouse menu system, I think, would take a lot more hunting than simply typing the command. Unix tends to have smaller commands because we can access them all rapidly. Windows and Macs tend to have large programs because small programs cannot be accessed and interconnected as quickly. Thus the keyboard is better with a large “vocabulary” of commands.

    The most useful feature of the mouse is the ability to select windows, and even that I’ve got set to “sloppy focus”, so that I don’t have to “click”. Frankly I’m waiting for something like wmii to become more mature so we can (hopefully) get a happy medium.

Leave a comment

You must be logged in to post a comment.

Web Mentions

  1. OddThinking » Memory Tricks