[net.cog-eng] Consistency

mel@houxm.UUCP (08/31/83)

"Consistency across all commands" ?  When has that ever been tried ?
Is that important ?  What a wierd idea.  Shouldn't discussions like that
go on net.jokes ?  It sure doesn't belong on a UNIX or TOPS-20 system.
  (Consistency is the sign of an undeveloped imagination.)
      Mel Haas  ,  houxm!mel 

wex@ittvax.UUCP (Alan Wexelblat) (08/31/83)

Or, to quote Oscar Wilde:  "Consistency is the hobgoblin of small minds."

Which brings me to an interesting question:  To what extent do you think that
application programs ought to be consistent?  I can think of arguments both 
pro and con, but I'm curious what others have to say.

--Alan Wexelblat
(until 9/2: decvax!ittvax!wex)
(after 9/12: ucbvax!wex.UPenn@UDel-Relay)

mcg@shark.UUCP (Steven McGeady) (09/02/83)

	"I contradict myself? So I contradict myself! I contain
	multitudes."

The trouble is, many users contain somewhat less than a multitude.

mark@umcp-cs.UUCP (09/02/83)

There are lots of kinds of consistency.  The most important thing
application programs ought to be consistent with is the application.
This means using concepts and methods already familiar to
the domain expert.  This most likely means that application
programs for different areas will be inconsistent with one
another.
-- 
spoken:	mark weiser
UUCP:	{seismo,allegra,brl-bmd}!umcp-cs!mark
CSNet:	mark@umcp-cs
ARPA:	mark.umcp-cs@UDel-Relay

gsp@ulysses.UUCP (09/02/83)

There are many aspects of "consistency" and I think they can be
discussed separately, and perhaps should be.

Here is a common problem of consistency for which there is
no solution, but I can tell you the tradeoffs.  It involves
consistency in language design, their syntax and primitives.

Suppose you want to design a language for application X.  You go out
and do a good job and people love it so much they ask for it to work on
application Y.  If you tuned language X to application X so that it was
wonderful for doing X, you may find it does not generalize well to
other domains.  On the other hand, you may have designed language X so
that generalization to other applications is easy.  In that case, you
may find that the language does not serve people well in application X.

A common example is the specialization of programming languages.
LISP is tuned to symbolic actions on lists, SNOBOL to string patterns
and their manipulation, and so on.  Applications based on some of these,
maybe a semantic network language based in LISP, are even more finely
tuned to a specific application.  This is not without a cost, though.
Once a language is tuned to one application, it loses applicability
to others. (This is not literally true.  LISP when extended in one
direction maintains its basic functions and hence their capabilities.
This is an advantage of extended languages over languages built
from token one.) Languages that provide everything for everyone
can be baroque and difficult to learn as well as implement.
Simple languages that provide the means for extension seem to be
the best alternative, though implementing them can be difficult
(but don't forsake great tools like m4 (especially the newer BTL version)
that offer such capabilities to many applications).  LISP is such a
language, as is C.  In such languages, libraries (extensions) are
bound to crop up.  (I wish they did more often.)

The tradeoff can be summarized:

A GOOD ARTIFICIAL LANGUAGE SPECIALIZES IN ONE DOMAIN
AT A COST OF GENERALITY TO OTHERS.

A corollary is that a good language is inconsistent with others;
almost a paradox.

These issues: tradeoffs in language design, consistency,
and artificial languages, are discussed in more detail in
my paper Natural Artificial Languages: Low Level Processes
that should appear sometime soon in the IJMMS.  Preprints
are available from me.
	Gary Perlman	BTL MH 5D-105	(201) 582-3624	ulysses!gsp

nather@utastro.UUCP (09/02/83)

             Consistency is a virtue of the small mind.

mason@utcsrgv.UUCP (Dave Mason) (09/05/83)

	Consistency is for Overloaded Minds.
(Be they small, or be the load large)