packetlost
a year ago
Very interesting! For those who do not pay too much attention to Forth, the forth standard [0] still sees fairly regular updates. GForth, the implementation that I've spent the most time with, gets several commits per week, so it's not dead, though I suspect that it's a small handful of individuals who use it frequently that are keeping it alive and not widespread use.
Forth is absolutely worth learning, if for no other reason than understanding how stack-based interpreters work. The CPython VM, as an example, behaves similar in some respects to the average Forth program.
There's definitely better examples out there, but here[1] is an implementation of Mage the Awakening 2e's (tabletop game) spellcasting system in Forth that I wrote to help with playing awile ago.
7thaccount
a year ago
It's also important to point out that a forth standard probably helps a few of the commercial vendors keep some level of interoperability, but in general, the hobbyist community (I would guess the bulk of forth users today) ignores the standard almost entirely and just implements their own forth (commonly a new one for each project).
The old saying is "if you've seen one forth, then you've seen one forth". It isn't a language like Python, but more like a language philosophy.
The creator of forth (chuck Moore) wasn't a fan of standards and felt they led to bloat. He was uniquely lucky and gifted to where he would figure out the minimum implementation of both hardware + software to solve a problem and by hardware...I mean he designed his own chips. So at the end of the day, he had a holistic tool where the hardware and software were designed together to solve a specific problem. He wouldn't implement anything he didn't need. It's a fascinating process that I would guess wouldn't work for 99.999% of people as most of us aren't at that level of knowledge/efficiency.
Forth and Lisp are both super freaking cool.
stevekemp
a year ago
I've always suspected that most people learn forth by implementing one, rather than by picking an existing implemntation and using it for something real/significant.
PaulHoule
a year ago
That was me.
I wrote a FORTH in 6809 assembly for the TRS-80 Color Computer running this OS
https://en.wikipedia.org/wiki/OS-9
which was very much UNIX influenced and could support three users logged in simultaneously. I wrote to the Forth Interest Group and got back a reference card for the standard and used that for a guide. The big thing I did differently was file I/O; at that point in time FORTHs often accessed individual blocks on the disk, your code editor would edit one block at a time, etc. If you already have an OS, text editor and such it makes more sense to provide an API similar to the C API for the filesystem so that's what I did and the standard caught up.
coliveira
a year ago
Not only Chuck Moore wasn't a fan of standards, he isn't a fan of standards because he is alive and active.
DonHopkins
a year ago
I used to do FORTH. I still do, but I used to, too.
johnisgood
a year ago
Factor is worth checking out, too, which is Lispy in some ways: https://github.com/factor/factor