3 ms·
Definitely Forth and Factor. Every programmer should get a little bit familiar with the concatenative style. 3 days ago i discovered a channel on YT which talks
by emporas 3y ago
Definitely Forth and Factor. Every programmer should get a little bit familiar with the concatenative style. 3 days ago i discovered a channel on YT which talks about Forth, even Chuck Moore himself did a talk there talking about GreenThreads and the like.
Given that webassembly is a stack language with no GC, i do expect a comeback of concatenative programming some time in the future.
https://www.youtube.com/@siliconvalleyforthinterest1736 https://www.youtube.com/@siliconvalleyforthinterest1736
- zarathustreal 3y agoCame here to say this, so I entirely agree. I found Forth and the concept of concatenative languages after deep study of the fundamentals of computing, specifically studying Lisps and the Lambda Calculus. Eventually found combinators and the Iota combinator. Finally hit the bottom of the rabbit hole! It really does give the lightbulb moment. “Don’t try to generate code, that is impossible. Only try to realize the truth… There Is No Code (only data)”
- pilgrim0 3y agoI went through a similar path! Concatenative appeared to me like the most economic paradigm one can possible come up with, a ultimate reduction, for which there’s practically no path to further downward abstraction. It feels more like a primitive building block than anything else. I always admired the design of Unix pipes, and flow oriented programming in general, then you realize that these things are just natural to stack processing, you need to introduce nothing. It’s like you’re programming with order itself. Programming is taught and practiced in a very convoluted way, and it makes you think that complexity must somehow stem for the lower levels of abstraction, until you get a grip of stack virtual machines, they couldn’t be simpler in their innate mechanics. I don’t know if it’s only me, but I used to think Turing Completeness was something challenging to achieve in a system, a hallmark of sophisticated complexity, but as I understood stack based languages I realized it’s the opposite, it’s the hallmark of simplicity. I wonder what it's like to have had Forth et al as a first language…
- pyinstallwoes 3y agoAre you using Forth day-to-day? And in what form?
- pyinstallwoes 3y agoHow are you using the Forth philosophy? Did you build your own, using another system?
- vitiral 3y agoAgreed, but recommend thinking of wasm that way. Wasm is not written as a proper stack machine, it's just a way to represent computations that can be optimized across architectures. I literally made this mistake, creating a wasm interpreter, before I realized it was a terrible runtime bytecode.