[comp.lang.forth] Consistency "slammed," by CM himself.

dwp@willett.pgh.pa.us (Doug Philips) (09/29/90)

Quoting, without permission,
    from SIGForth, Volume 1, #2: (typos are mine)

"By not specifying notation in advance, Forth lets you
 choose one suitable for each situation.  There is no need for
 consistency beyond the immediate application.  In fact, the single
 principle of postfix operators suggests notation very comfortable in
 English (12 inches) as well as in postfix languages (German,
 Chinese).  Not demanding consistency is compatible with natural
 language, and exploits their determined ambiguity."
	    -Chuck Moore

The context of that quote is that CM is explaining why Ada/C are
to be avoided:  "They both suffer the same drawback neatly
finessed by Forth.  They must have all possibilities resolved in
advance." (CM)

I personally find the first quote less than heartening when
considering the ANSI effort, and the spread of Forth, in general.
But, CM ends with the following:

"Forth has a marvelous opportunity as the the only alternative to
 increasingly elaborate and unsatisfactory software.  As the
 novelty of software applications wears off, users will demand
 acceptable levels of performance and accuracy.  The existance
 proofs offered by academics will not be accepted as solutions to
 real-world problems.  As investors learn that programming costs
 are one-time, and that replicating bugs is not cost-effective,
 the value of real programming tools will increase.  And as the
 marriage of Forth and hardware matures, good solutions will
 reveal today's software as the garbage it is."

I am not (yet anyway) convinced that "programming costs are
one-time."  Perhaps that is due to my inexperience as a Forth
programmer.  I am curious to know what others think of these
quotes, what the forbode for ANSI and Forth in general, and
if the lifecycle of Forth programming is significantly different
from traditional programming (developement vs. maintaince
time/cost), if there is a difference, is due to something about
Forth itself, or something about the domain in which Forth is
being applied.

-Doug
---
Preferred:  dwp@willett.pgh.pa.us	Ok:  {pitt,sei,uunet}!willett!dwp

koopman@a.gp.cs.cmu.edu (Philip Koopman) (10/01/90)

In article <1795.UUL1.3#5129@willett.pgh.pa.us>, dwp@willett.pgh.pa.us (Doug Philips) writes:
> I am not (yet anyway) convinced that "programming costs are
> one-time."  Perhaps that is due to my inexperience as a Forth
> programmer.
Programming costs are almost never one-time.  The bigger and
more complex the project, the less likely that the first release
of software even grossly approximates the required functionality
(i.e. the spec., which is probably not what the customer/user
wanted either).  The traditional numbers are 20% to
create a program, 80% of costs for lifetime maintenance, where
maintenance is largely to correct/enhance the software.
Much of the problem is language-independent.  A lot has to
do with the problem of "I think I might understand what I
thought I heard you ask for, which may or may not be
what you actually thought you might want, assuming that
you really understand the problem you want to solve " in spec. writing.

Interactive development in Forth and the ability to quickly
bring up prototype systems gives more chance for the programmer
and customer to come to terms on what the *real* requirements
are (not the ones in the spec.).  BUT, this is probably only
an advantage on small systems where everyone involved can
fit around a CRT and knock heads until things are resolved.

  Phil Koopman                koopman@greyhound.ece.cmu.edu   Arpanet
  2525A Wexford Run Rd.
  Wexford, PA  15090
Senior scientist at Harris Semiconductor, and adjunct professor at CMU.
I don't speak for them, and they don't speak for me.