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.