[net.ai] Forth as AI language

ab3@pucc-h (Darth Wombat) (01/18/84)

	I disagree with Darrell (ihopa!dap) as regards his contention
that Forth would be suitable for AI.  There are severe problems with
Forth that prevent it from being much more than an interesting (failed)
exercise in threaded-interpretative language design.

	As Darrell said, it is (1) compact, (2) modifiable at runtime,
(3) extensible and (4) hard to read.  Some of these are also features/flaws
of Lisp, depending on your viewpoint. However, I'd like to point out the
following:

	1. Forth is a lot harder to read than Lisp; at my former employer,
where we used Forth in real-time control and number-crunching applications,
we called it a "write-only" language.

	2. There are at least an order of magnitude more implementations of
Forth than there are of Lisp; and even implementations from the same vendor
behave radically different on different processors.

	3. The debugging support is non-existent.

	4. The primitive set of operators is *very* large; and it is not
orthogonally constructed; the names are not even *close* to mnemonic; and
many operators have uncontrollable side effects outside the modules in which
they are used.

	5. Forth is *not* fast.  It's not even quick.  So forget handling
lots of data with it, because you'll get very bored very quickly.

	6. Forth is not structured, typed, or anything like that.  When
using Forth, you may forget anything you learned from Software Tools, or
Elements of Programming Style, or Niklaus Wirth, or, rougly speaking,
the last 15 years of evolution in programming techniques.

	The clincher for me is that over the last week and a half, I've
been learning Lisp from Winston & Horn's book.  I've already written 
programs in Lisp that I am unable to write in Forth; and I have over a year's
experience with Forth.

-- 
"Go ahead...make my day."
Darth Wombat
{ allegra, decvax, ihnp4, harpo, seismo, teklabs, ucbvax } !pur-ee!rsk