Design criteria for languages

In a posting yesterday on "APL Implementors Considered Harmful",

I neglected to include one desirable criteria we can use to

measure the cost of a proposed language extension:

How much does the extension cost to those who do NOT use it?

As an example, consider the behavior of singleton extension in

scalar functions.

The expression Scalar+Vector always produces a Vector. This is Good.

The expression Singleton+Vector usually produces a Vector. Unless

the Vector has exactly 1 element, in which case the expression produces

a Singleton.

This extension to singletons, therefore, has two Evil Effects on

people who NEVER use the extension (And on those who DO use it, as well):

a. The interpreter has to make special checks on EACH execution to see

if this is the singleton case, for ALL scalar functions.

b. A person maintaining a system has to be aware that this expression

can produce a non-vector result, based on the LENGTH, not the RANK,

of one argument. This can lead to unforseen bugs, difficulty in

analysis, and so on.

Is singleton extension worth it? I think not.

We can use similar techniques to measure the impact of other proposed

and extant language features.

Bob