[net.lang.forth] Some experiences with Forth

CSvax:Pucc-H:ab3@pur-ee.UUCP (07/22/83)

	I recently left Omnimedical, a designer/manufacturer of CAT 
scanners and similar medical equipment;  I was a software engineer there
and worked extensively with Forth, so I'd like to make some comments.
If some of the following seems obscure, keep in mind that a lot of the
information I'd like to disclose is proprietary, so...[ethics and all that]

	Forth does seem to be appropriate for small, real-time systems;
we used 6809's and 68k's, and life in general was easier on the '09's.
Most of the 6809's were doing jobs that could be classified as "intelligent 
peripheral controller" or "smart buffer"; and Forth seems to be a moderately
clean way to handle these kinds of jobs.

	The interactiveness of Forth is nice for debugging; OUR Forth
[ polyForth w/local mods] does not have any "canned" debugging tools, though.
One find oneself writing custom debuggers for each new situation.
["Well, why don't you write one, twit?" I hear you say.  But each Forth
program is so different that it would to tough to write, say, adb-for-forth.]

	Now for the bad news: Forth can be as cryptic (or more) than APL.
It takes very disciplined programming to avoid this.

	Forth takes a long time to learn; there are a lot of terms [words]
and some are not suggestively named.

	The embedded multitasker in our Forth was not very robust; as an
operating system it was a washout.

	That's the one-minute-soapbox bit.  (Didn't want to get carried away
until I find out how much of a target I'm making of myself :-) )
Incidentally, the decision was recently made at Omni to stop using Forth
on 68k's and go to a Unixlike OS and C; Forth will still be used on '09's
due to invested code/time.

						Rich Kulawiec