comp.lang.ada
 help / color / mirror / Atom feed
From: Karel Th�nissen <thoenissen@hello.nl>
Subject: Featuritis not always bad (was re: GOTO considered necessary)
Date: 1997/06/25
Date: 1997-06-25T00:00:00+00:00	[thread overview]
Message-ID: <33B0673C.6C76@hello.nl> (raw)
In-Reply-To: dewar.867079599@merv


Robert Dewar wrote:

> Right, I often state a rule that says that adding ANY feature AT ALL to
> a language damages the language by increasing size and complexity.

Yes, but leaving it out may lead to increased size and complexity of
programs written in the language. If the feature is difficult to get
right, maybe it is an even better idea to have it incorporated in the
language and not in the programs. Then tens of thousands of programmers
can all save hours of trying to make it themselves in their numerous
programs (Ada-case) or millions of programmers can all save weeks trying
to make it themselves (C/C++-case 8-) in their numerous programs.

In general, I object to the use of the term complexity as a measurment
in language design. Complexity of the compiler? complexity of the
tutorial? complexity of the programs written in it, complexity of the
design, complexity of the design and programming proces, complexity of
verification, validation and testing? Usually one comes at the expense
of the other.

The most serious effect is often the consumption of precious name space
by reserved words.

> The trick is to ensure that the positive contributions of the new 
> feature outweigh this damage.

As for many things in life 8-)

> I think this is an important language design principle. Otherwise you
> end up saying "oh sure, stick this in, people do not have to use it
> if they do not want it."

Which is no problem if the feature:
1) is well designed and well behaved, so no tail biting
2) comes as a independant feature, so that people can work with the rest
of the language without ever knowing that the feature existed. This
ensures that people can write in the language safely if they have not
finished the full language course: avoid steep learning curve and memory
load.
3) comes as a clearly recognisable syntactic entity in the language. So
if one reads the code and is not familiar with the feature one at least
knows that there is a cognitive problem, and knows where to look in the
reference manual (and find there many useful informations on the feature
that would find no place if the feature was to be simulated with lower
level constructs)

This is one of the great benefits of design patterns: they allow us an
understanding of the system at a higher level of understanding and
provide an easier to grasp repetoir of solutions and a vocabulary.

I leave it as an exercise to the reader to determine whether the FSM is
such a feature.

Groeten, Karel




  parent reply	other threads:[~1997-06-25  0:00 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-06-11  0:00 GOTO considered necessary (reworked) Samuel Mize
1997-06-11  0:00 ` Bryce Bardin
1997-06-12  0:00 ` Anonymous
1997-06-12  0:00   ` Robert Dewar
1997-06-12  0:00     ` John G. Volan
1997-06-13  0:00       ` Robert A Duff
1997-06-16  0:00         ` John G. Volan
1997-06-17  0:00           ` Robert A Duff
1997-06-25  0:00             ` Van Snyder
1997-06-17  0:00           ` Robert Dewar
1997-06-17  0:00             ` Robert A Duff
1997-06-18  0:00               ` Spam Hater
1997-06-20  0:00               ` Robert Dewar
1997-06-21  0:00                 ` Robert A Duff
1997-06-21  0:00                   ` Robert Dewar
1997-06-20  0:00               ` Robert Dewar
1997-06-25  0:00               ` Wolfgang Gellerich
1997-06-25  0:00                 ` Samuel T. Harris
1997-06-25  0:00                 ` Michael F Brenner
1997-06-26  0:00                   ` Wolfgang Gellerich
1997-06-19  0:00             ` Karel Th�nissen
1997-06-19  0:00               ` Karel Th�nissen
1997-06-23  0:00               ` John G. Volan
1997-06-23  0:00                 ` Robert Dewar
1997-06-24  0:00                   ` Brian Rogoff
1997-06-25  0:00                   ` Karel Th�nissen [this message]
1997-06-26  0:00                     ` Featuritis not always bad (was re: GOTO considered necessary) Robert Dewar
1997-06-26  0:00                       ` Karel Th�nissen
1997-06-23  0:00                 ` GOTO considered necessary (reworked) Spam Hater
1997-06-25  0:00                 ` Karel Th�nissen
1997-06-23  0:00             ` John G. Volan
1997-06-17  0:00           ` Robert I. Eachus
1997-07-21  0:00           ` Shmuel (Seymour J.) Metz
1997-06-12  0:00   ` John G. Volan
1997-06-16  0:00     ` Anonymous
1997-06-12  0:00 ` Michael F Brenner
1997-06-17  0:00   ` Robert Dewar
1997-06-17  0:00     ` Robert A Duff
1997-06-20  0:00       ` Robert Dewar
1997-06-21  0:00         ` Robert A Duff
1997-06-21  0:00           ` Robert Dewar
1997-06-13  0:00 ` Robert A Duff
1997-06-14  0:00   ` Robert Dewar
1997-06-16  0:00     ` Robert A Duff
1997-06-17  0:00       ` Spam Hater
1997-06-17  0:00         ` Robert Dewar
1997-06-17  0:00           ` Spam Hater
1997-06-17  0:00           ` Robert A Duff
1997-06-19  0:00             ` John Herro
1997-06-25  0:00               ` Function result Van Snyder
1997-06-27  0:00                 ` Robert Dewar
1997-06-27  0:00                 ` Jon S Anthony
1997-06-20  0:00             ` GOTO considered necessary (reworked) Robert Dewar
1997-06-17  0:00         ` Robert A Duff
1997-06-19  0:00           ` Spam Hater
1997-06-16  0:00     ` Spam Hater
1997-06-17  0:00       ` Robert Dewar
1997-06-17  0:00         ` Spam Hater
1997-06-14  0:00   ` Samuel Mize
1997-06-14  0:00     ` Matthew Heaney
1997-06-14  0:00   ` Samuel Mize
1997-06-16  0:00 ` Anonymous
1997-06-16  0:00   ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox