Per a blog item by Jon Erickson , Chuck Moore, inventor of Forth, has again irrupted into my continuum with his Intellasys venture, another Forth in silicon [SEK 40C18 DataSheet]. I've now got an earlier proto board [SEAforth®-24 Device Data Sheet] on my desk.I have powered it up and have read the manual (which is a strangely moving piece of literature by Elizabeth Rather and associates).
My programming youth was spent in the Forth Wars. It may be hard to believe today, but there was actually a time when it was not obvious which language was going to dominate personal computing.
Forth, the original (or one of the original) virtual machine model programming language was giving compiled C a run for its money
Neither memory nor storage was cheap in the 1980's. Microprocessors designed around the dual stack (data and return) architecture and instruction architecture of the Forth virtual machine ran at amazing effective speeds.
There was one catch: sure, you could write a C compiler for the parts. But as soon as you did, as soon as you tried to construct programs according to the C execution model according to C programming practices, the speed advantage disappeared.
And if you tried to run Forth programs on the brand-name microprocessors which were increasingly optimized for C, then C had the advantage. It isn't that language-specific microprocessors fell out of fashion; it's that C won.
Forth, good Forth, that is, demands and enforces that you think about the problem more like the machine thinks about it and spend less time trying to shoehorn the homely quantum truths of computing into an ideal model.
Forthers write code which is more like a dialog with the virtual machine than like an edict from above. Forth programmers are in deeper than most of you are, and they know it, and it makes it hard get to them to work together in large numbers.
That hasn't been the model of our industry today, not the model of Main Street, anyway, which is built upon the LOUT principle (Large Organizations of Underclued Technocrats). Small dark corners of the workplace occupied by three or four surly geniuses have not been on the menu. Well, hard times and layoffs are here. We'll see. Maybe Forth and small, surly programming teams are due for a comeback.
Return from Sidetrack
So I have played with the SEAforth-24 development enviroment. It thwarts me, the aging Forth expert. It's written in SwiftForth. It's not open source. It runs on Windows and Linux. I don't use Linux, and the one Windows machine has Win2000 on it whose USB drivers don't like this cute little USB-connected masterpiece.
For masterpiece it is, a little wafer grid of 24 dual-stack CPU's connected N-S-E-W like the 1980's InMos Transputers.
Except it's about half the size of one Transputer. I mean, the demo board which you can program is about half the size of one Transputer. The chip itself a little bigger than one's thumbnail.
Low power for embedded applications, precious little memory, and to talk to units interior to the grid you have to relay programs via the edge units, those that are boot-programmed to relay such messages. It's like a little virtual world in itself, with its own Forth dialect. As the CPUs have nothing like console I/O, the word "dot" ( . ) was just sitting there, and Chuck grabbed it to mean nop.
Chuck laid out the chip himself, with tools he developed in ColorForth, the Forth system he originally wrote as a protected mode 80386 operating system. He wrote it in MS/DOS DEBUG in the late 1980's, assembling the instructions one at a time until he had a Forth system, which he has used as his main development system from then on.
Earlier parts which failed in the market as packaged devices leaving Chuck casting about for direction later on began to return license revenues for subsections of their logic being designed in to new parts. Things that couldn't be done with the six-figure design tools were being done by programming's prophet in the wilderness using only Harold's magic purple crayon, as it were.
The revenue helped lauch Intellasys.
I'll either have to set up a Linux system or figure out the interface spec and write some stuff. More later as I delve after access to the SEAforth-24.
Working in tandem on the port of GForth to OpenBSD my coreligionist pointed me to his 8-line Mandelbrot. Some people may feel it is obfuscated Forth, but no, that's what Forth looks like.