For a programmer, the most important aspect of a computer may be the keyboard. It is through the keyboard that we write code, that we control the text editor (or IDE), and issue most commands.
Being of a certain age, my first experience with keyboards was not with a computer but with a typewriter. It was my parents' portable, manual typewriter; I have forgotten the brand. It was hard to use and it smelled of ink and machine oil. Yet it was a fun introduction to the keyboard.
Typewriters were fun, and computers were more fun. The keyboards were more modern, and had more keys (some of which made little sense to me).
I have used several keyboards, and the most enjoyable were the DEC keyboards. DEC keyboards were sleek and sophisticated compared to the other keyboards (Teletype ASR-33, Lear-Siegler ADM-3A, and IBM 3270). I also enjoyed the Zenith Z-100 keyboard (sculpted like an IBM Selectric typewriter) and the IBM Type M keyboard.
Typing on a good keyboard is a joy. Typing on a mediocre keyboard is not.
Sadly, today's PCs cannot use these venerable keyboards. Desktop PCs want to talk to a keyboard through USB, and tablets want bluetooth.
Yet all is not lost. Virtual keyboards may help.
Not the on-screen virtual keyboards of smart phones and tablets, but a different form of virtual keyboard. A keyboard that is drawn (usually with lasers) on a surface, with an accompanying scanner to detect "keypresses".
It strikes me that these keyboards can be used on a variety of surfaces. I'm hoping that some will be programmable (or at least configurable) so that I can create my own layout. (For example, I want the "Control" key on the ASDF home row.) I also have preferences for the arrow, HOME, and END keys. A virtual keyboard should allow for re-positioning of the keys.
Re-positioning the keys is nice, but it doesn't let me use the old keyboard. The surface is still a flat, unyielding surface with no feedback.
But do scanners really care about a flat surface? Can they be used on a lumpy surface? (I'm sure that some are quite fussy, and require a flat surface. But perhaps some are less fussy.)
If a virtual keyboard can be used on a flat surface, and I can re-program the key layouts... then perhaps I can configure the virtual keyboard to emulate an old-style keyboard (say, the DEC VT-52). And perhaps I can use the virtual keyboard on a lumpy surface... say, a DEC VT-52 keyboard.
Such an arrangement would let me use any keyboard I wanted with my computer. The virtual keyboard would do the work, and wouldn't care that I happened to rest my fingers on an old, outdated keyboard.
I would like that arrangement. It would give me the layout and feel of the keyboard of my choice. I wouldn't have to compromise with the current set of keyboards. All I need is a programmable virtual keyboard and a real keyboard that I enjoy.
Now, where is that old Zenith Z-100?
Showing posts with label virtual keyboards. Show all posts
Showing posts with label virtual keyboards. Show all posts
Saturday, March 2, 2013
Wednesday, July 11, 2012
A keyboard just for me
We've had the QWERTY keyboard for ages. I learned to type on a real, honest-to-goodness manual typewriter with the QWERTY layout. I learned to program in BASIC on a Teletype ASR-33 (with a QWERTY keyboard), and 8080 assembly on a Heathkit H-89 (with a QWERTY) keyboard. All of these devices had the keyboards built in, part of the device itself.
The IBM PC came with a QWERTY keyboard (at least in the US). Unlike the previous devices, it had a detachable keyboard, and one could replace it with a different layout. (Not that many people did.)
I am sure that some folks still use the Dvorak layout. Some have called for a new standard.
With the invention of the smartphone and the tablet, we now have virtual keyboards. They appear on the display and are composed of programmable bits.
It strikes me that we don't really need a standard keyboard layout. When keyboards were physical things, hard-wired to the main device, a standard layout made sense. (Even when keyboards were mechanical components of manual typewriters, a standard layout made sense.) Physical keyboards could not be changed, and a standard let people easily move from one device to another.
With virtual keyboards we can create individual keyboards and let them follow us from device to device. When keyboards are programmed bits on a screen, it is easy to program those bits for our preferences. We don't need a standard keyboard that everyone agrees to use; better to have our custom keyboard to appear when we use the device.
Those custom keyboards can be any layout. They can be QWERTY. They can be Dvorak. They can be Dextr. They can be any of the above with slight changes. They can be wildly different. They can be programmed with additional keys for characters and glyphs outside of our normal set. (While I use the US layout, I often write the name "Mylène Farmer" and I need the accented 'è'.)
Beyond characters, we can add commonly used words. Android devices often add a key for ".com". We could add custom keys for e-mail addresses. When writing code, we could have special keyboards with keywords of the language ('if', 'while', etc.). Keyboards might interact with development environments. (We see something of this with the smart matching that suggests words as we type.)
I see little need to stay with the QWERTY layout. (Designed, long ago, to prevent people from typing too quickly and jamming the mechanical keys in a manual typewriter.)
Let my keyboard layout be mine!
The IBM PC came with a QWERTY keyboard (at least in the US). Unlike the previous devices, it had a detachable keyboard, and one could replace it with a different layout. (Not that many people did.)
I am sure that some folks still use the Dvorak layout. Some have called for a new standard.
With the invention of the smartphone and the tablet, we now have virtual keyboards. They appear on the display and are composed of programmable bits.
It strikes me that we don't really need a standard keyboard layout. When keyboards were physical things, hard-wired to the main device, a standard layout made sense. (Even when keyboards were mechanical components of manual typewriters, a standard layout made sense.) Physical keyboards could not be changed, and a standard let people easily move from one device to another.
With virtual keyboards we can create individual keyboards and let them follow us from device to device. When keyboards are programmed bits on a screen, it is easy to program those bits for our preferences. We don't need a standard keyboard that everyone agrees to use; better to have our custom keyboard to appear when we use the device.
Those custom keyboards can be any layout. They can be QWERTY. They can be Dvorak. They can be Dextr. They can be any of the above with slight changes. They can be wildly different. They can be programmed with additional keys for characters and glyphs outside of our normal set. (While I use the US layout, I often write the name "Mylène Farmer" and I need the accented 'è'.)
Beyond characters, we can add commonly used words. Android devices often add a key for ".com". We could add custom keys for e-mail addresses. When writing code, we could have special keyboards with keywords of the language ('if', 'while', etc.). Keyboards might interact with development environments. (We see something of this with the smart matching that suggests words as we type.)
I see little need to stay with the QWERTY layout. (Designed, long ago, to prevent people from typing too quickly and jamming the mechanical keys in a manual typewriter.)
Let my keyboard layout be mine!
Labels:
dextr,
dvorak,
keyboard layout,
qwerty,
tablet,
typewriter,
virtual keyboards
Monday, January 31, 2011
The keyboard bows out
Does Apple have it in for the keyboard? I think it might. All of it's recent success have been devices without keyboards. (Physical keyboards, that is.) And I think that this may be a good thing for programmers and especially programming languages.
I can see several possibilities for the elimination of the physical keyboard. Apple could use today's virtual keyboards of the iPod and iPad. Or they might use a small Kinect-like device to capture gestures and interpret them as keystrokes. Apple may include USB ports and Bluetooth for wired and wireless keyboards, as separately purchased accessories. Physical keyboards might be welcomed by a subset of users: secretaries, authors, programmers, and old-timers who refuse to give up the old ways.
The first step in the elimination of the physical keyboard is a transition to a similar representation in virtual form. Apple already does this. But it won't be long before people start flexing this new virtual keyboard. Look for Dvorak configurations and then custom configurations that change not only the key sequence but also the key positions. I expect people to experiment with different layouts, moving keys out of straight rows and into arcs and clumps. And why not? When the "keys" are just bits on a screen, let users move them to convenient positions.
Virtual keyboards will change more than just the layout. They will change the way we program. The hardware we use governs our ideas of programming languages.
The last big change to programming languages was caused by the transition from keypunch machines to terminals. The invention and use of Teletypes, Decwriters. and VT-52s made possible new programming languages. (I omit the venerable IBM 3270 terminal here, since in my opinion they did *not* help users perceive code as text. The IBM hardware and supporting software operated in modes that mimicked punch cards or displayed text in field-structured form. It was the non-structured Teletype that allowed the creation of new languages.)
I'm convinced that the "new hardware" of terminals with upper and lower case letters and full-screen addressability allowed us to create the full-screen editor and also languages that viewed programs as flowing text and not as 80-column chunks. Languages such as Algol, C, and Pascal were possible once we started thinking of code as "statements" and not as "lines". The continuation character and reserved columns in FORTRAN were a result of punch cards, not language design.
Virtual keyboards will be the first step towards a new technology set, just as Teletypes were the first step into the world of text terminals. This new world will have new ideas about programming languages and code. Probably graphical, possibly geometrical. I don't know the nature of the new languages, but they will be different from today's C# and Ruby as those languages are different from FORTRAN and COBOL.
Subscribe to:
Posts (Atom)