Previous Table of Contents Next


2.2.4 User expectations


   One of the programming language faults identified by McIver and Conway is that of backward compatibility. They define backward compatibility in two forms: genetic compatibility and mimetic compatibility. Genetic compatibility refers to syntactic similarities in programming languages that result from one language being developed as a successor to the first (such as C and C++). Mimetic compatibility, by contrast, refers to language features that are derived from de-facto standards, such as the use of square brackets for indexing into arrays. The authors suggest that both of these were too often agents for the propagation of syntactic features that, while familiar to those with programming experience, conflicted with a novice’s preconceived ideas of what a function might appear as. However, since the target audience of an HUTN generatedlanguage is assumed to have some familiarity with programming conventions, the situation is reversed. These syntactic familiarities can serve the purpose of providing the new user with a head start in learning the language.

   The final usability consideration taken from the two papers was avoiding the problem of violating the user’s expectations. This often comes about through poor selection of function names and appearances. In some situations, the orthogonality of concepts can mean that misleading code can arise through the obscure and complicated combination of simple features. However, the names used in an HUTN-generated language come from the underlying model, which presumably conforms to the user’s expectations.