Thursday, October 20, 2005


Most computer programs employ English for keywords and names. However, I'm sure that langlubbers and programmers agree, English is poorly suited for the task. For example, adjunct phrases in English titles are "specific to general", like "Input Stream" and "Output Stream" rather than "general to specific". Programmers prefer to group names by their equivalence classes (for example "Stream"), which lexical sorting would do if only our titles were "general to specific", like "Stream Input" and "Stream Output". Programmers also prefer to have exhaustive and "orthogonal" equivalence classes, which in English, usually require creative application of disparate terms like "push", "pop", "shift" and..."unshift". Programs also abhor ambiguity, with which English is replete. Hackers also love brevity, which often leads to additional ambiguity.

I propose "Codish", a standardized mutilation of English for the purpose of making computer programs more consistent. The Codish vocabulary should meet needs in most languages, providing unambiguous and exhaustive terms for particular contexts. Codish would be targeted at language designers and library writers. Here's my violent attempt to start a discussion about such a language. I posed this topic to the Constructed Languages Mailing List.

No comments: