The interactive tools of the previous section enable us to enter a handful of Unicode characters, but we would hardly want to input a long document in this manner. People were using keyboards to type up documents even before the advent of computer science, and the keyboard will remain—until a direct connection between brain and computer becomes a reality—the most natural means of carrying out this operation.
But keyboards are physical, or hard, objects. If we often write in English, Arabic, Hindi, and Japanese, must we buy a keyboard for each of these languages and play a game of musical keyboards every time we switch languages? Absolutely not. We can simply change the virtual keyboard, which is the table of correspondences between (physical) keys and the (virtual) characters that they generate.
Operating systems have offered such virtual keyboards from the beginning; they have been part of the process of localization for each language. Thus a user of the English version of Mac OS X or Windows XP can switch to the Greek, Arabic, or Chinese keyboard at any time.
But there are at least two problems. First, these virtual keyboards do not necessarily cover all writing systems (although Windows provides a rich set of virtual keyboards); in particular, they do not cover ancient languages. To be sure, we can always find a supplier of rare virtual keyboards. But there is a second problem, of a more subtle nature: we would like for the virtual keyboard to be adapted ...