ma168x@sdcc3.UUCP (John Wavrik) (06/20/86)
The debate on the issue of "what good is Forth" is complicated by the fact
that Forth has such a very wide spectrum of uses that it is really several
languages.
The majority of my students are interested in learning Forth because an
employer or their research group uses it for instrumentation and control.
Forth was first developed as a replacement for assembly language in this area.
I'm sure you can do almost anything in almost any language, but the idea that
LISP will be used for writing telescope control packages seems a bit
far-fetched. Forth's nearest competitor in this area is `C'. Forth has the
advantage of providing an interactive environment which speeds development
time. It is particularly well suited to applications which require
experimentation with the program as it is being developed. In some cases,
applications have been developed in Forth with the intent to recode the final
version in `C' or assembly language .. but the Forth version worked well
enough that it was used as the end product.
At the other end of the spectrum, an increasing number of programmers are
using Forth for high level language applications (including AI where LISP has
dominated). In this area, Forth is as suited for number cruching as for symbol
manipulation; it can handle random access (array-like) data structures as
easily as pointer oriented (list-like) data structures. It is fast and
efficient, and it is also very flexible.
I think that what makes Forth so attractive is that it caters to a certain
view of computing which is not much in vogue these days. What is the most
important factor determining the power of a computer language (or operating
system, or any piece of software)? The most popular answer is that power
derives from a large selection of features. The minority answer is that power
derives from knowledge. There is a parallel in the way people approach
mathematics: Most people try to memorize a large number of facts and formulas.
Others look for the core of underlying ideas and derive what they need when
they need it.
Forth presents the user with a simple and comprehensible framework. The user
understands and has access to all parts of the system. With this
understanding, all kinds of "features" can be constructed which work precisely
as the user desires. Forth is more a toolkit for building custom languages
than a language itself.
Forth is not a language for everyone, but I don't think there is anything
wrong in this.
John J Wavrik
Math Dept
Univ of Calif - San Diego
La Jolla, CA 92093
..ucbvax!sdcsvax!sdcc3!ma168x