Of metaphor and the difficulty of computer discourse

Computer DiSCOuvSe e are frequentIy nzminded that computer science has its roots in recent history. It lacks a long and rich tradition and is sometimes thought to be lacking in well-developed paradigms and methods. Computer science is not only chronologically new but radically new in kind. Its mental processes, its language, and the realities with which it deals are dierent from those of other sciences. Juris Hartmanis, a mathematician turned computer scientist, observed smne years ago that computer science is a " brand new species of science, " with paradigms radically different from those of other disciplines [7]. Edsger Dijkstra made a similar claim for the radical newness of the discipline in his 1972 Turing Award lecture, " On the Cruelty of Really Teaching Computing Science " [4]. We rightfully expect a radically new discipline to use language in new and distinctive ways. Computer discourse has a number of typical features, the sum total of which sets it clearly apart from other scientific idioms. It is, for example, action-heavy and noun-heavy. Strong verbs often act on nouns fabricated in an ad hoc manner. For example , we " provide user-extendibility for data types " [22] rather than simply " allow the user to extend data types " (a roughly equivalent phrase). Gawky notms like " userextendibility " illustmte the noun-heavy aspect of computer discourse. Computer discourse tends toward ellipsis, creating a strong no-nonsense kind of style that leaves out details that anyone but an expert might require for comprehension. Strings of modifiers or strings of hyphenated nouns are often cascaded together. The acronym, sometimes used to excess, is a kind of ellipsis, as is the use of nouns as verbs (we " access " a file; we " port " programs; we " gateway " servers [21]. Traditional rules of grammar are easily cast aside in the interest of a style that is spartan and powerful, though not necessarily succinct. Because they deal with highly abstract and arbitrary realities (i.e., they could have designed otherwise), computer scientists are called on to name a very large number of things that may not have obvious designations. Those with simple analogies to natural phenomena are often designated metaphorically. Others may be assigned complex multipart descriptives that are sometimes rather poetic (e.g., the walkabout strength of variables [5]). Computer discourse is replete with creative, colorful, and sometimes whimsical nomenclature with only limited scope (i.e., …