After years programming large software systems, I occasionlly feel the need to do some programming on the small scale, on small hardware. Sometimes I just need to dispense with object orientation and structured design and write some code in assembler, C, or (my personal favorite) Forth. Programming close to the metal can be rewarding on many levels, not the least of which is that it lets you your arms around a complete problem and solve it outside of the group think mentality.
If there is a list somewhere of obscure computer programming languages Forth is on it. Although Forth occupies a place on the evolutionary continuum of programming languages that continues to this day, many programmers never got to or never wanted to see what Forth was all about. Programmers who did experiment with Forth typically fell into one two camps -- those that thought it was the best language ever (at least for a certain class of problems), and those who hated it completely. There was rarely any middle ground taken. Discussions of Forth often take on the tone of religious debates akin to discussions of what is the best programming editor.
I was an early convert to Forth after having worked at JPL on inter-planetary spacecraft where Forth was used for command, control, and testing purposes, Rolm Corporation on Forth-based PBX control and test applications, and Sun Microsystems where Forth is used as the boot environment on many Sun workstations. As an interesting aside, Forth is still going strong in the space industry.
Then as now, Forth is an excellent choice of programming language/programming environment/operating system for small computer systems where direct control of the hardware, of input and output (I/O) and/or a small memory footprint are required.