Keyboards are the primary input device for computers, evolving from mechanical typewriters to electronic interfaces. This page explores competing keyboard layouts like QWERTY, Dvorak, and others, their advantages/disadvantages, why QWERTY became standard, how keyboards scan keys, encoding standards like ASCII, IBM PC scan codes, and the shift from parallel to serial protocols (PS/2, USB).
Keyboard layouts arrange keys for efficient typing. The main competitors are:
| Layout | Advantages | Disadvantages |
|---|---|---|
| QWERTY | Widely standard; familiar; prevents typewriter jams (historical). | Less efficient (70% typing on top row); higher finger travel; RSI risk. |
| Dvorak | Ergonomic; 70% home row typing; reduces fatigue; faster for English. | Learning curve; software remapping needed; not standard; less common. |
| Others (e.g., Colemak) | Balances efficiency/compatibility; ergonomic improvements. | Niche adoption; remapping required; limited hardware support. |
QWERTY was designed for Remington typewriters in 1873 to slow typists and avoid jams. Its adoption on the Remington No. 2 (1878) spread it widely. By the 1880s, typing schools taught QWERTY, creating inertia. Despite alternatives like Dvorak (faster by 20-40% in studies), switching costs, compatibility, and market dominance (IBM Selectric, PCs) cemented QWERTY. Today, it's universal due to habit and ecosystem lock-in.
Modern keyboards use matrix scanning: keys arranged in a grid (e.g., 8 rows x 16 columns). The controller scans rows sequentially, applying voltage to one row at a time and checking columns for closures (key presses). This detects multiple keys efficiently with fewer wires (e.g., 24 for 104 keys). Debouncing software/hardware filters bounces. Vintage keyboards (e.g., Apple II) used similar matrices but simpler controllers.
ASCII (American Standard Code for Information Interchange, 1963) is the dominant 7-bit encoding (128 characters); extended ASCII added 128 more. EBCDIC (IBM, 1964) was used on mainframes. Unicode (1991) superseded for global support. Early teletypes used Baudot (5-bit, 1874). Standards ensure compatibility across devices.
IBM PC keyboards (1981) introduced scan codes: each key press/release sends a code (e.g., 1Eh for 'A' press). The controller generates these, not characters—BIOS/OS maps to ASCII. Set 1 (original) and Set 2 (AT keyboard) evolved for compatibility. This decoupled layout from hardware, enabling remapping (e.g., Dvorak).
In the "olden days" (1970s–early 1980s), keyboards used parallel output: multiple wires for data bits (e.g., 8-bit ASCII + strobes). This was simple but cable-heavy. Serial protocols emerged for efficiency:
Serial reduced wires (PS/2: 6 pins; USB: 4) and added features like multimedia keys.