Settings

Theme

An Attempt at Explaining Why You Want to Use Forth

im-just-lee.ing

7 points by fallat 10 days ago · 3 comments

Reader

t-3 9 days ago

Forth is a language designed for interactively programming applications on bare-metal. It's never going to be popular as-is because that's not the vast majority of the programming that people do. When running under an OS, idiosyncrasies like block filesystems are quaint but impractical, and the "traditional" designs are not attractive for systems programming. Chuck Moore was an application programmer before becoming a language and then hardware designer. He famously doesn't believe in operating systems. Modern IDEs and LLM integration have made interactivity and rapid failure/iteration less advantageous by removing or abstracting away many distractions from programming workflows.

The primitive set would need to be expanded to be immediately useful for modern purposes, and with an expanded primitive set the simplicity and smallness are lost and the core language becomes more opinionated and less of a flexible tool for building DSLs. Stack manipulations are hard to reason about and only exist for reordering data - these will repel anyone used to imperative programming languages. They could be done away with by changing things, but the resulting language would probably not be considered Forth. Software engineering demands maintainability and fungibility of engineers, which makes concatenative style and the tacitness of stack programing a drawback.

Forth still shines in bare-metal programming and hardware control, and for interactively making DSLs, but DSLs can be constructed in any language. The problem-solving philosophy and emphasis on not solving problems you don't have is much more important than the language itself.

fallatOP 10 days ago

Updated with feedback from last year & now annotated with HTML for nicer typesetting.

turtleyacht 10 days ago

LLMs writing Forth to improve themselves is compelling.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection