Program Design and Engineering
2025-11-22
Forth has
two stacks, and,
access to the input stream, and,
the concept of “immediate words.”
This enables the creation of tokenizers at the command line and the customization of parsing on-the-fly.
Combined with the fact that programmers can perform this at the command line (the “REPL”), this provides a highly productive combination for Design Engineering.
Lispers achieve similar productivity by representing programs internally as lists and using macros - lists that can be custom-parsed and modified to affect the compiler’s operation.
Nearly every popular programming language (including Scheme, Racket, Clojure) has inadvertently discarded such aspects of programming by overemphasizing production engineering and disregarding iterative design.
In my opinion, the concept of “programming” today is only a small portion of the full range of what “programming” should encompass. We expect paying customers to critique and iterate our designs, rather than doing so ourselves.
See Also
Email: ptcomputingsimplicity@gmail.com
Substack: paultarvydas.substack.com
Videos: https://www.youtube.com/@programmingsimplicity2980
Discord: https://discord.gg/65YZUh6Jpq
Leanpub: [WIP] https://leanpub.com/u/paul-tarvydas
Twitter: @paul_tarvydas
Bluesky: @paultarvydas.bsky.social
Mastodon: @paultarvydas
(earlier) Blog: guitarvydas.github.io
References: https://guitarvydas.github.io/2024/01/06/References.html

