I swear... sometimes, I wonder what the MS Hardware Group which works on keyboards is thinking.

As I see it, they have a really simple job - find and keep the keyboard layout that works for the users, and lead/innovate/maintain with the technologies behind the keyboard.

Leading Technologies

They have been great at innovating and maintaing the technologies, repeatedly adding things like:

  • USB (and USB hub)
  • Wireless (with awesome battery life) and Bluetooth
  • Media shortcut buttons, including Sleep
  • see-thru encasing
  • etc...with each generation and improving the hardware abilities.

Lagging Keyboard Layouts

However, they have been horrible at finding and KEEPING the keyboard layout that works:

  • Split/curved hand layout
  • Arrow keys in an inverted T layout
  • Escape key WITH the Fn keys and ABOVE the number keys
  • Home/End/PgUp/PgDn/Ins/Del in the classic 2 row and NOT the 3 row layout
  • Removing the Ins key altogether
  • Fn keys ON by default instead of needing Fn-lock)

Note: I am just talking about the keyboard layout here. Tactile touch and non-input keyboard gizmos like scrollwheels, touchpads, etc are something else altogether. I mean, I do like the clickity-clack of the IBM keyboards (my X41 has sold me on it), though I am not zealously fascinated by it.

The Trusty MS Natural Keyboard

Now, don't get me wrong - I love Microsoft Hardware, especially the keyboards, since the days of the original MS Natural Keyboard. THAT was an awesome keyboard (matches just about all my keyboard layout criteria listed above). Its only "problems" were that it was pretty bulky, pretty wide, and technologically primitive (wired, no USB, no Media shortcut buttons nor the Sleep button).

So, what does that team turn around and do? Introduce the Natural Keyboard Elite, which trimmed off a lot of weight, narrowed the keyboard tremendously, and in the process traded the inverted T into a lowercase "t" layout for arrow keys and introduced the bizarre 3 row layout of Home/End/PgUp/PgDn/Ins/Del.

Note to the obvious - the reason the 2 row layout works out so well is because:

  1. Home is right above End
  2. PgUp is right above PgDn
  3. Ins is right above Del

In other words, the opposing functioning key is right next to each other in the same ordering relationship (always above/below each other). Anyone can remember that. Now look at any of the MS keyboards with the 3 row layout. They usually fail to keep opposing functioning keys in adjoining columns, move keys around between versions, and some even drop the Insert key. I see no rhyme or reason for the design changes at all.

All I can say is that as a touch typist, a simple, logical keyboard layout that preserves muscle memory is most important to me. You can add all the frills and hardware upgrades you want, but if you mess around with the keyboard layout, especially into ones that are not immediately logical, then you simply annoy me and make me consider the design foolish.

Good Designs do come Back

Fortunately, it seems that the MS Keyboard Group comes back to its senses every 5 years or so and release an update to the original design.

Remember the MS Natural Keyboard Pro? I thought it was the perfect update to the original MS Natural Keyboard because it brought back to the original design and simply updated it with dual PS/2 and USB, an integrated USB hub, and added Media shortcut buttons, including Sleep. If it was also wireless with great battery life, I would IMMEDIATELY buy several of that keyboard and never use any other again. Incidentally, this is the keyboard that most people on the IIS team use.

But alas... promptly, with the next revisions to introduce wireless capability, the layout removed the USB hub, re-introduced to the 3 row layout, started removing the Insert key and making the Delete key prominent, and introduced the ridiculous Fn-lock key with the Fn-keys off by default... and the resulting generation of wireless keyboards all suffer from variations on this design. What is silly is that some keys keep getting moved or neglected (i.e. Home/End/PgUp/PgDn/Ins/Del) and the Fn-lock concept keeps coming back.

Come on! Why doesn't Alt-F4 work!?! Gah! <presses Fn-lock key>

And five years later, after all those experiments with keyboard layout, the MS Natural Ergo Keyboard 4000 essentially returns back to the MS Natural Keyboard Pro design, except with sleeker Media shortcut and Sleep buttons, lost the USB hub, still retaining the ridiculous Fn-lock key, and still not wireless.

Le Sigh...

From my perspective, it is five years of no progress, even though I am sure many man-years were spent on those designs. Sigh... all that wasted time. I am just waiting for those guys to realize that the Fn-lock concept is silly and should be removed, and that they should just work on getting the "classic" keyboard (i.e. MS Natural Keyboard) design wireless and call it a day. Stop experimenting and shifting the keyboard layout around!

It seems like new people join that team every couple of years and want to radically change the "user experience" of the keyboard, first to target the "Internet Browser", then the "Knowledge Workers", and now "Media Users"... and what better way to radically change the user experience than to move the keyboard layout around?

Ooh... it's revolutionary keyboard layout optimized for activity X, Y, Z, blahblahblah.

Don't they get it... that the classic design is basically best - just keep it and add all the convenience buttons you want and upgrade the hardware to be buzzword compliant. Don't mess with the keyboard layout and annoy the touch typists who periodically purchase keyboard upgrades.

I mean, not to be mean or stereotypical, but the users that buy these "radically new" user experiences probably do not touch type and thus can actually afford reading the keycaps of the changing keyboard layout or enjoy the see-thru encasing. These users will not care where you put the keys as long as it exists to be buzzword compliant and they can easily find it.

What does this have ANYTHING to do with Software?

Oh, hmm... so that got me thinking. Maybe those are the same sorts of thoughts that YOU guys have of US working on software like IIS. I mean, why can't we stop futzing with how the web server is built/extended and just make incremental improvements in performance, security, and features with each release? Why do we keep breaking ISAPI Filters and force you to write new Modules/Handlers in IIS7?

Ahh... but I think it is different with software. Hardware designs are inherently re-usable - physical laws governing the design stays the same through time. Software design is far more complex, has not reached that same level of maturity yet, and the environment/rules keep changing over time and obsolete the designs. Believe me, we would love to stick to one design and just make those incremental improvements - that makes our jobs easier and your lives better. But, what tends to happen every five years or so is that the system/rules change and the software gets obsolete (darn that technical progress!!! ;-) ).

  • In 1985, it was the Memory Address and move from 8bit to 16bit (Intel 80286)
  • In 1990, it was the GUI and move from MSDOS TSRs to 16bit "Enhanced Mode" Windows Applications (Windows 3.0)
  • In 1995, it was the move from 16bit to 32bit Applications (Windows 95)
  • In 2001, it was the move from the cooperative multitasking of Windows 9x to preemptive multitasking and real process isolation of Windows NT (Windows XP)
  • In 2005, it was the move from simple Web Applications to cooperating Web Services (Visual Studio 2005 / ASP.Net 2.0)
  • Etc...

I'm sure that good design principles remain invariant, but no implemented piece of that design could survive from one generation to the next... so we keep rewriting it, and that's when you see changes and bugs. Hopefully, with IIS7, we put a good technological design stake in the ground and can stick to not rewriting it over the next decade and just focus on improving functionality to match your needs.

Hehe... you just KNOW that I have to tie things back to software and IIS at some point... it's not just a hardware rant... ;-)