From: “M. Edward (Ed) Borasky” [email protected]
I guess it depends on what you want to do with it. I only briefly looked
at Joy and haven’t even heard of Factor until just now. Joy struck me as
an “academicized” Forth, which I think is a “bad” thing. Forth itself
has a current ANS standard and a working committee building a new
standard, at least two commercial vendors and dozens of open-source
implementations. People actually get paid to write Forth.
Yay! I used to get paid to write Forth.
It was my favorite
language for many years.
This looks like a pretty nice explanation of how Forth works:
http://dec.bournemouth.ac.uk/forth/forth.html
I wrote a for-fun Forth interpreter in Perl a few years back:
http://tastyspleen.net/~billk/pforth/
Just stumbled on this link–kind of interesting, Forth code to
add object oriented defining methods to Forth: (classes with
inheritance… although the numbers used to link message names
to corresponding methods seems kinda clunky…)
http://www-personal.umich.edu/~williams/archive/forth/peters/ooPocketForth.txt
I’ve thought on occasion it might be neat to submit a ruby quiz
sometime, where the goal is to write, in ruby, the core of a Forth
interpreter/compiler, such that the rest of the language
(provided with the quiz) can bootstrap itself.
I think it’s kind of one of those potential “ah ha!” moments
when one realizes how simple a Forth interpreter/compiler loop
can actually be.
I’d probably get back into Forth if I were doing small
embedded systems programming. But Forth doesn’t go out of
its way to do complex things behind the scenes to help the
programmer the way Ruby does. (Fixnum → Bignum automatic
conversion being one example… Dynamic memory allocation
with garbage collection being another…)
Ultimately I ended up feeling that while Forth’s simplicity
is one of its key strengths in a context like embedded
systems, its simplicity ends up being more of a liability
when programing large applications.
But when you need to get an interpreter, compiler,
I/O subsystem, and editor in a few Kbytes of memory–Forth
is truly amazing.
Regards,
Bill

