

Forth: The Other White Meat - gnosis
http://erlangish.blogspot.com/2008/07/forth-other-white-meat.html

======
gruseom
Forth is metaprogrammable machine language in the way that Lisp is
metaprogrammable expressions. Each is a local optimum of programming
languages, meaning that any other language that tries to do the same thing
ends up being either isomorphic to it or not as powerful. In other words, a
version of PG's thesis about Lisp holds equally for Forth in its neighborhood.

But Forth has one major advantage over all other such languages: it's a
generalization of the hardware.

Every metaprogrammable language other than Forth is a generalization of some
abstract primitive (s-exprs for Lisp, objects for Smalltalk), which leaves a
gap at the bottom that must be bridged before anything can be executed. These
languages all struggle to get to the machine. Consider the decades it took to
make Lisp fast. In Forth, the primitive _is_ the machine. This is so
extraordinary a position to occupy -- full metaprogramming all the way up from
binary -- that I wonder why we don't see more amazing things done with Forth.
Of course, majority practice is not correlated with computing greatness.

I think this extraordinary quality of Forth is connected to how Forth grew out
of a working programmer's projects. Lisp came from math, Smalltalk from
language research. It's worth remembering that Moore learned Lisp from
McCarthy before he invented Forth. Forth is a Lisp hacker's attempt to make
something he could use in commercial projects on mid-60s hardware.

------
mindstab
I would have said Prolog, it has more history in AI among other things. Forth
is like assembly if you have no registers and just a stack. It's still quite
low level. If you want mind bendy that you can still reasonably do things with
check out Prolog.

------
zdw
The "Thinking Forth" book he likes appears to be available for free:

<http://thinking-forth.sourceforge.net/>

~~~
stonemetal
Also Starting forth is free at <http://www.forth.com/starting-
forth/sf8/sf8.html>

------
zwieback
I used to run FIG Forth on my Apple ][. It was a pretty fun and instructive
experience. Not sure if I would choose Forth on larger systems but it's great
for resource constrained environments.

------
kaeluka
Just added forth to my todo-list.. thx!

------
Stormbringer
In terms of comparing Forth and Lisp, I was able to pick up a fairly large
chunk of postscript (a forth-ish language) and work with it with no prior
exposure to forth.

I haven't seen any Lisp where that is the case. Generally the lisp I've seen
gets far too wrapped up in its own cleverness.

My impression is that Forth is a language where things get done, whereas Lisp
is a language for basking in your own glory.

I have a theory: the amount of hype for a language is inversely proportional
to the degree to which people use it to do real work.

The same could be said of methodology evangelism. The people actually doing
the work don't tend to harp on about it.

