The BBS world was so strange... what I mean is, I remember going to meetups and there being all these strange cliques and insider jokes and culture wars that made absolutely no sense. And yet, I think about that time and there was so much exploration happening, where you could bounce from board to board and connect with people and learn new things. While I'm sure people do meet strangers via social media these days, the BBS world was completely different in that you would truly meet people online and then become friends you'd hang out with in person - you could find your tribe, so to speak.
It was such a smaller world. I remember how exciting it was that someone on a local BBS responded to a post. I got even more excited when I wrote a post on FidoNet and got a response from someone on the other side of the continent.
I was a teenager at the time and remember some of my friends went a dinner meetup for a BBS. They revealed it was super awkward afterwards, but I guess it was an older crowd.
First, all of the commands are Forth words, and they're using the text interpreter to do dispatch. It's like passing a string to Lisp EVAL (but vetting it first).
Second, they're using the Forth BLOCK system, which is a crude "virtual memory". But this makes things quite easy for them I/O wise. Everything is stored as absolute offsets, they MOD is by the block size, and say "give me a pointer to BLOCK N", and the system returns that. Side effects? Everything is just done "in memory". The BLOCK system does the rest (including caching and flushing change blocks back to disk). Instead of mmap, you wanted a miracle? I give you BLOCK.
Neat stuff, 600ish lines of code.
(If someone wants to read the pristine .SCR file, Emacs has a Forth Block major mode you can hunt down to make reading it easy.)
I used to dabble in Forth a long time ago and I always thought it would be interesting to see a Forth that people could telnet/ssh into and it would look & act like a MUD or BBS, but the prompt they're on could be the core Forth interpreter/REPL anyways - allowing optional live coding and more.
I originally discovered Forth through a MUD called TinyMUCKS that had a neat scripting language within it called MUF (short for Multi-User Forth). The MUD itself was unfortunately written in C.
If you want more Forth in your life, the /r/forth subreddit [0] is pretty active. I think that's where this person found this project in the first place (and is now attempting to restore it).
Forth is on my list of languages I'd like to learn but have no idea where to start, just like APL and Lisp.
I'm not a dev but can program. Having learned a little bit of the history of how forth was invent I feel like a dumber kindred spirit to its creator. I like that he didn't know you had to parse, tokenerise etc and just split on the white space and read left to right. It feels like the way I would do it.
Both these books were written by Leo Brodie. My dad had them because he used Forth at work. I was only 6 years old when I read them back then, but I absolutely loved those books. They were what got me into programming and I still consider them among the best written programming literature ever. They're both available for free now:
After that, Jonesforth (https://rwmj.wordpress.com/2010/08/07/jonesforth-git-reposit...) is an excellent example of Literal Programming that starts with an Assembly listing and bootstraps into a complete usable Forth system. No better way to learn Forth than to actually implement one...