by Michael S. Kaplan, published on 2005/01/21 00:13 -08:00, original URI: http://blogs.msdn.com/michkap/archive/2005/01/21/357960.aspx
Of course if you asked any rational person whether a keyboard was hardware or software, they would say hardware.
Whether it plugs into serial, PS/2, USB. FireWire, or it is wireless, it is most certainly a hardware device.
(We'll ignore the case of the TabletPC, which includes a software emulation of hardware keyboards, for the moment. I'll get back to it in a minute...)
On the GIFT team, however, we generally do not think about the keyboard hardware, we think about the keyboard layouts, which are definitely not hardware. Before MSKLC you could only build them with the Windows Driver Development Kit (DDK), but they are not device drivers, either. I think they are a lot closer to software, or maybe data supporting software.
We "own" the layouts in GIFT; someone down the hall from me owns the challenging task of working with governments and communities on the definition of Keyboard Layouts on Windows that I talk a bit about here, and I own getting them built and checked into the Windows source tree. Our team definitely owns the Microsoft Keyboard Layout Creator for building your own software layouts, in any case....
Interestingly, we do not own the On-Screen Keyboard (OSK) found in Windows under
Start|Programs|Accessories|Accessibility
(it is owned by the Windows Accessibility team) nor do we own Visual Keyboard (it is owned by Office). But that too is a story for another day. :-)
What is interesting about the keyboards that are built and shipped around the world by the MS Hardware folks and the layouts defined for keyboards in Windows owned by us usually have key definitions that are the same (in other words, for the given language what they print on a key matches what we make the key put into a program).
Why is that interesting, you may ask?
Well, it is interesting because up until Friday, October 15, 2004 at 2:00pm PST the two teams (as far back as any of can determine) had not ever met!
(I suspect most people outside of Microsoft assume it is one company; from the inside it often seems like a collection of different companies rubber-banded together)
We were actually meeting to talk about something entirely unrelated to looking into synchronizing our efforts, though once we were there it occurred to everyone that perhaps synchronization might not be a bad idea. And so that may happen, to some extent, in the future.
But later on, three things occurred to me:
Now back to the Tablet PC soft keyboard case, which i mentiond earlier (as well as in earlier posts). It was unique in that the soft keyboard was meant to be an actual simulation of hardware for a device that is not really meant to use a keyboard a lot of the time. As of its first service pack update, the Tablet PC has a soft keyboard whose "virtual hardware" will completely simulate the layout that you choose in Windows. This makes it the 100% mapping that even cooperation between the hardware folks and us could never do since there is no way to alter what is printed on the keys when the layout is changed.
Though I wonder sometimes what it would be like to switch to the Happy Hacking Keyboard Blank Key Top Model, to remove all confusion about what each key should do. Or maybe just to know if it would negatively impact my typing?
(Special thanks to MikeG.1 for the blank key top pointer -- I am strongly considering ordering it and plugging it in to the machine in my office, just to do it. I always use Remote Desktop to get to the machine anyway, so this would not affect me; it would just make people freak out when they see it.)
This post brought to you by "ß" and "β" (U+00df a.k.a. LATIN SMALL LETTER SHARP S, and U+03b2 a.k.a. GREEK SMALL LETTER BETA)
# Ivan-Assen Ivanov on Friday, January 21, 2005 3:00 AM:
# Michael Kaplan on Friday, January 21, 2005 7:31 AM:
# Joku on Saturday, January 22, 2005 3:51 PM:
# Michael Kaplan on Saturday, January 22, 2005 4:03 PM:
# Ivan-Assen Ivanov on Sunday, January 23, 2005 9:35 AM:
# Michael Kaplan on Sunday, January 23, 2005 10:42 AM:
# Alex on Tuesday, February 15, 2005 9:16 AM:
referenced by
2013/09/24 Keyboards: hardware vs.software, Redux
2011/08/17 Having 103, 106, or 109 keys when they may not be expected
2007/11/05 Keyboards: plug-and-play, not plug-and-communicate-what-they-look-like
2007/04/20 Those keyboard layout DLLs are *not* the hardware
2006/11/26 Strategic avoidance of stepping in a CrapFest
2006/03/23 Getting all you can out of a keyboard layout, Part #0
2006/02/24 Two guys walked into a bar, but the bar was broken
2005/08/13 Hardware is still not always software