I used FORTH and really liked it. So did everyone I knew who actually wrote a little FORTH code. It was cool.
Some of the key benefits that I saw in FORTH:
- It was cheap/free, pretty easy to port to a new system, and had a reasonable flavor of standardization.
- It could interface to hardware, BIOS, other libraries, etc. Easily.
- It was fast.
- Had a very small memory footprint. Something like 3K on the PET & VIC20.
Developing code in FORTH was very simple, enforced a strictly bottom-up development style, and "limitations" in the editors & tools forced you to really factor your code well. I recall that there was generally only forward progress on project - once you wrote the code and it worked, you generally did not go back and rework/refactor.
I also remember some negative things about FORTH. The FORTH community (at least the one I tried to interact with) were kind of zealous. FORTH was religion for too many of them, and they spent a lot of time debating FORTH and too little time actually just writing apps. The few user group meeting I attended (I was like 20) was like a revival meeting, and there were "insiders" and everyone else. I was part of everyone else. I didn't drink the kook-aide, didn't get religion, and thus was sort of isolated. Didn't matter - I probably wrote more production-quality code than most of them, and almost certainly worked on products that generated more revenue than all the copies of FORTH ever sold - Math Blaster & derivatives sold many millions of copies, and every DOS version ran on top of my FORTH clone of the original Mac toolbox. [Davidson was a big fan of FORTH - see wikipedia for more on the Blaster_Learning_System ]
There was also a lot of discussion in the general computing community about the stack/RPN aspect of FORTH and why this was the wrong model. I never got it - seemed just as natural or unnatural as using registers and such.
To summarize, I found FORTH easy to learn, easy to develop with, and highly productive. I am sure others (like Louis S. and the folks at Davidson) had similar experiences. So...
Why isn't FORTH more popular?
I am not sure. Here are some possibilities:
1) Platform Vendors Focused on C
For me, I stopped using FORTH when I went to a game company that was building products for the Philips CD-I platform. This was a 32-bit platform - C worked great on it, so the fast, low-memory footprint of FORTH didn't matter as much. There was no FORTH for the platform (only C and assembler), a lot of system libraries, and there was a huge amount of new technology to understand. The incumbent programmers at the company we somewhat junior and C as a big challenge. So I didn't suggest FORTH, and we didn't use it. Interestingly, I did build a tiny stack-based VM in our game engine that was a subset of FORTH. But it was invisible, i.e. the code for it was generated by tools, not humans.
2) Colleges Taught C
In the early to mid-80s, PC's we really starting to take off and programming for PC-class systems was being taught in colleges. C was the language of choice at the time. So new grads knew C, not FORTH. This is pre-Internet, so FORTH was not something you would stuble on or download and try. So to programmer's who did NOT start in the 8-bit world, FORTH was invisible.
3) FORTH Vendors Failed to Engage Market
Most FORTH vendors - at the time, all language vendors - were pretty small operations. I think many were focused on competing within the FORTH market, not in the PC market. I recall that the ads from LMI, FORTH Inc., MMS, etc. seemed to be focused on making their FORTH the choice IF you use FORTH. I don't recall anything that said use FORTH because FORTH is better than C.
Perhaps if is that the FORTH "community" failed to engage the market. There is an old article entitled 21st Century Forth. Go read it. I just re-read it and it seems to me it is focused mostly on the implementation of FORTH itself. I don't seem much that speaks to the how to market FORTH so people will consider using it. To me, this is the classic FORTH if we build it they will come. Not.
Can FORTH become more popular? Should it? Do we need to resurrect a nearly dead language?
Next: Does FORTH matter today?