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