For me, Forth has a powerful, compelling feature: I trust it.
When I am working on a project, I can become a control freak.
I don't want to spend time fixing problems caused by external
variations. Tracking down issues caused by using a different
build environment, or different library releases, or unstable
Makefiles or the phase of the moon drive me crazy. What can
make me particularly crazy are poor tools. A wonky compiler
can waste a unbelievable amount of time; some minor code
change causes the compiler to generate bad code somewhere
else. Grrr!
So, because of this, I tend to use tools that I believe
to be correct, or at can be be correct. To this end,
simpler is better.
For example, I trust UNIX kernels over Windows kernels because
UNIX kernels are smaller and solve a simpler, better defined
problem.
Compilers? I don't trust them. They are way complicated, and
have a bad history with me.
Assemblers? I trust them, but they are typically too simple
to do non-trivial jobs with.
Forth? I (in the past) understood Forth very well. I wrote
Forth code that compiled Forth into headerless, ROMable
code, and at no point was I bitten by a bug in Forth. Forth
was easily powerful enough to write the applications, yet simple
enough that I understood and believed everything it did.
I consider Forth to be a powerful precision tool that I trust
to do the job.
-- Charles