-->
An Attempt at a Compelling Articulation<br>of Forth's Practical Strengths<br>and Eternal Usefulness
PRELUDE
Problem Statement
It's done! We have that crucial ingredient giving life to that little<br>Forth, allowing it to walk by itself! Unfortunately, you'll soon see<br>that after a few steps, this little creature stumbles and falls.<br>What is it lacking, a little balance maybe?
-- Virgil Dupras
Explaining why Forth is still relevant has become a bittersweet, ironic comedy<br>routine enthusiasts and "operators" are finding themselves in more frequently.<br>We usually begin with lavish statements of simplicity, and ease the<br>reader into a fog of what Forth is. We return the reader back to the concrete<br>with examples... Examples so contrived that they have the complete opposite<br>effect - a tint and a dulling of any allure that may have existed as sparks in<br>the prospective Forther's mind. Speeches of grandeur falling flat.
Virgil's quote is a perfect specimen of this phenomenon. The miracle of popping<br>into existence - walking nonetheless - is a direct testament to Forth's<br>evolutionary nature. It's such a strong positive to begin with, yet immediately<br>follows up with "it's useless".
Virgil needs no defense: he's right. It is useless. The point is, that statement<br>is a negative wrinkle for what is a positive feature: a foundational, minimal<br>core to build on. It's these instances of faulter that contribute to Forth's<br>continual uncertainty in today's context.
On Saturday I saw the final act causing me to want to write this piece.
The Ironic Proposal to Implement a Forth in C
A long-running project called eforth was linked on lobste.rs, a link aggregation<br>site, attempting to sell Forth on still having relevancy:<br>https://github.com/chochain/eforth. It is based on eForth, created by Bill<br>Muench, which strength lies in being a meta-compiler (it can compile itself)<br>for easy portability.
The author details their history, how they worked with a prolific Forth user and<br>contributor, Dr. Chen Hanson Ting (a heavy user and ethusiast of eforth, passed<br>away 2022), and why their particular Forth project is a successor to his work.
But it's the first paragraph that catches my attention. It unironically reads:
With all the advantages, it is unfortunate that Forth lost out to C<br>language over the years and have been reduced to a niche. Per ChatGPT:<br>due to C's broader appeal, standardization, and support ecosystem<br>likely contributed to its greater adoption and use in mainstream<br>computing.
The project's README then proceeds into lengthy detail about how to implement<br>Forth in C.
Yep.
It is the fastest open-closed case I've seen to date of someone explaining why<br>you'd use Forth and then miraclously shoot both their feet at once.
It seriously left me empty-minded after reading.
The only hint of relevancy revolves around compilation and being able to build<br>the system for many architectures, thanks to C compilers and ease of<br>implementation.
Disclaimer on Authority and Guarantee on Love for Forth
I'm not a Forth guru; a great sage like those of LISP, C, or Haskell. No<br>universal promise can be made to you that what I say is unyielding truth. You<br>will have to verify that for yourself. What I can promise is the perspective<br>from a simple, passionate programmer of a couple decades, and 3 years of those<br>belong to Forth. Never has my heart been completely enveloped by an idea. The<br>allure and compulsion has practically caused me to fall in love with a<br>programming language. Maybe this is how Pythagoreans felt about their triangles.<br>With this great fire, I will tell you why Forth is forever.
WHAT IS FORTH
Each of the following sections touch on what Forth is. The brief version is:
Forth is a simple high level programming system.
People that drive-by usually see "Forth is a stack-based programming language",<br>but it's never explained what the implications are - effectively a useless<br>description. The stack is an important core part to what makes Forth simple in<br>execution and implementation, but there's more to it than that.
It's very possible many readers will be hearing about Forth for the first time<br>when they encounter this essay. There are two recommended readings for all<br>Forth first timers by Leo Brodie: Starting Forth, and Thinking Forth.<br>The former focuses more on concrete code, and the latter is a philosophical read.<br>They go hand-in-hand and I can't really recommend one over the other: it really<br>depends on the kind of person you are.
I will do my best to give an extremely short description of what Forth is in<br>this essay to remain self-contained.
Explain Like I'm 5: Forth Edition
For those completely new to stack programming at all, read this. Otherwise you<br>can skip to the next section. After you understand what stack-based language is,<br>the next section explains how you use it.
Forth is a pancake stacking machine with superpowers.
top pancake5<br>pancake4<br>pancake3<br>pancake2<br>bottom pancake1
You eat these pancakes like you normally would:...