vityok's Blog
< ------------------------------------------------------------------------------------------------------------------- >
Журнал, в основному, присвячений TeX, LaTeX та відновлюваній енергетиці.
How to destroy a system
The text is taken from a discussion on the comp.lang.scheme usenet group. The original article might be still accessible under this url:

http://groups.google.com/group/comp.lang.scheme/browse_thread/thread/cf8f493a0a...




There is a distinction between language and protolanguage at the center of my thoughts on the matter.

In a protolanguage, you have symbols for lots of things, like eating, and mice, and cheese. And if you throw all these symbols together, in any order, people reach the obvious conclusion -- that a mouse ate some cheese. This is usually okay as long as you have nouns and verbs, although you're already running into trouble as you have no clear notion of which noun is the subject and which the object. (okay, with a mouse and cheese, and the verb "eat," I think we can make an assumption... but things are not always so clear, and we can't communicate the surprising case if we happen to run across some kind of bizarre mouse-eating cheese).

Most people (preverbal children) start learning languages on the basis of protolanguage. Most adults learning a new language foreign to them start out with protolanguage. The additon of structure (ie, grammar) creates language from protolanguage. Language allows more nuanced communication: we know which noun is the subject and which the object, and we can add adjectives like "heavy" or "old" with some confidence of them being attached to the noun for which they were intended.

The way most people use a GUI, it's a protolanguage at best. We can specify a noun, and we hope the system infers the proper verb. Usually we have to specify a different noun for the object of the sentence (or the subject, if we grabbed the object first). And adjectives, for the most part, are beyond us. We're operating the way preverbal children operate, pointing at the things on the dinner table that we want and attracting the attention of an adult with opposable thumbs and better reach, and hoping that that person (subject) figures out that we want them to pass (verb) the desired items (objects) to us (indirect objects).

Without linguistic advance, we cannot communicate the surprising case. The preverbal child points at the milk, we point at a word processing document. The typical case (give the child the milk, open the document in its accustomed editor) usually results. But the surprising case (where what the child actually wanted was for the milk to be poured over the pumpkin pie, or we wanted to use a hex editor instead of our word processor) requires language.

If we want, for example, to open up a word-processor document in a hex editor rather than its accustomed editor, we have to invent syntax (in most GUI's now available as drag-n-drop specifies a verb to go with a particular object). The child who wants milk poured over the pumpkin pie must also learn language, as such an arbitrary request is unlikely to be inferred by others from any prelinguistic behavior.

My point is that the "language" of GUI's, while now admitting of a subject-verb structure via drag-n-drop and a question form (still pretty ragged and not universally implemented) via the right mouse button, is advancing very very slowly. By contrast, the "language" of most shell command systems is already quite advanced. In the shell I have grouping (globbing) and adverbs (command-line switches) and locatives (redirections) and adjectives(globbing plus filename discipline) already, and they're convenient to use. I also can structure and sequence commands, creating a hierarchy of verbs via pipe commands. These things, and means to express these things, simply don't exist in GUI's yet. I cannot say the things via a GUI that I can say via the shells, because the linguistic structure of GUIs is not yet as far advanced.

And as soon as the language of GUI's is sufficiently flexible and general to express such thoughts, it will have also aquired the arbitrary character and learning curve typical of spoken or typed shell languages. If you have ever watched two people having a conversation via sign language, you have seen an advanced GUI language in action, and I'm willing to bet that unless you also have put as much effort into learning that same language as would be required to learn any foreign language, you understood it not at all.
2006-02-23 16:56:41 GMT
Hosted by www.Geocities.ws

1