Forth: The programming language that writes itself
Adoption and “Too Powerful” Languages
- Several comments question why powerful languages (Forth, Lisp, Smalltalk) never became mainstream, despite expressiveness.
- One view: success is mostly historical luck and platform alignment (C with Unix, JS in browsers, Ruby via Rails), not “too much power.”
- Another view: economics and hiring matter; companies avoid languages with small talent pools and gravitate to “bricklayer” languages that many can learn and replace.
Collaboration, DSLs, and Readability
- A recurring concern: languages that make it easy to create DSLs (Forth, Lisp, Smalltalk, Perl) encourage each project to invent its own “mini‑language,” complicating collaboration and maintenance.
- In Forth specifically, heavy metaprogramming and per‑project vocabularies can make environments feel unique, though some argue this is no worse than C with differing libraries and macros.
- Others report that large Forth codebases were maintainable, but ramp‑up for new developers was “brutal.”
Constraints vs Expressiveness
- Multiple comments argue constraints are a feature: languages and formats that make many programs impossible (SQL, HTML, CSS, URL syntax) are easier to read, reason about, and interoperate with.
- “Principle of least power” on the Web is cited: simple, non–Turing-complete or data‑only formats scale socially better than fully programmable systems.
- Example comparisons: a word‑frequency program is very short in Perl/Python, more verbose and awkward in Common Lisp/Smalltalk, and would require substantial infrastructure in Forth.
Stack Discipline and Cognitive Load
- Forth’s stack is seen as both power and burden: you must keep stack state in short‑term memory, which many find harder than reading named variables.
- Locals and globals can ease this, but some feel that departs from Forth’s original ethos.
Tooling, Libraries, and Performance
- Lack of standardized interfaces and rich libraries is cited as a key reason Forth (and to a degree CL/Smalltalk) lose to Python/Ruby/JS in everyday tasks.
- Even with native compilers, older “powerful” systems often underperform modern runtimes focused on hot loops and libraries (regex engines, NumPy, etc.).
Forth’s Niche and Legacy
- Forth excels on constrained hardware and for “end‑to‑end” systems (bootstrapping, firmware, embedded controllers).
- Many reminisce about early microcomputers, PostScript, Open Firmware, and educational value: implementing or porting a Forth is seen as a great way to learn how machines really work.