Had a dream last night, in which the programming language Forth played a big role. Which is a bit of a puzzlement because I’ve never learned to program in Forth. There was a time when Forth was tagged as the next big thing and every computer magazine had articles about it, but that was around the time when commercial software started advertising “written in C for speed” and an interpreted language like Forth didn’t have a chance. I believe Forth became the core of PostScript.
The first thing I remember from the dream is seeing two small computers with a wire connecting their ‘pin 1’s. Somebody asked the Forth guru why they were connected, and I said “I know that, it’s so their clocks are in sync” and I said something about events on rising edges. I have no idea what that’s about – I’ve never done anything that low level. Evidently my dream self has been taking electrical engineering courses.
Later I was talking to the guru in front of three real train tracks, and every time a train went by a single alphanumeric letter above the track lit up. I wonder if that is some dream reference to the famous Tech Model Railway Club, but I really only know about them from the Jargon File. I wonder if they used Forth?
Later the guru was showing me about ports to respond to external events and control things like lights and heat in a house. I distinctly remember a panel showing four room mates and an indicator of whether they were using Forth to control their thermostats or not.
Anyway, it seems odd to me to be dreaming about a programming language I’ve never used, and low level hardware stuff I’ve never done. Not sure if that’s a subconscious reflection of my recent surgery, or trying to do object oriented programming in Perl.
I wrote a few PalmOS (not webOS) apps in Forth. The beauty of Forth is that it is small/simple enough that you can put a full development environment on an embedded device. I would write my programs using Graffiti on the Notepad app, and compile/run/debug without ever needing to connect to a PC.
I liked Forth, but can’t imagine using it again. It’s a bit like Lisp/Scheme: a great language to learn, because you’ll be exposed to interesting programming concepts, but not something you would use for “real work”.
I never programmed in Forth, although I was always intrigued by it, even having studied several implementations. There were a lot of clever (for the time) ideas in it, and I adopted quite a few of them for the virtual machine I implemented as part of my Masters Thesis project back in 1989: http://www.stefanv.com/computers/masters_thesis.html
Forth was the third (ha!) high level programming language I learned, after Algol68 and BASIC (6502 and z80 assembly language were in the middle of that). Tcl is very closely related (defining words, overloading, inheritance, etc). Forth isn’t interpreted at runtime; it’s a linked language and so actually fairly fast/close to the machine.
I’ve just realised that my Starting Forth book from 1981 is still on the bookshelf.. wow I’ve been programming for over 30 years. I only wish that I picked up human languages as well as I pick up programming languages.