FORTH, the big hoax. I picked up the following article from ftp.wsoy.com, the file pub/interviews/1994/cmoore.Z ---------------cut here-------------------- HOAX is about to reach its 25th anniversary. -------------------------------------------- New York, 18/2/1994 4:50 PM This is a transcription of an interview on WSOY, the worst radio station in the known universe and beyond. Interviewer: Johnny Hacker Interviewee: Charles Moore JH: Charles, when did you start your career as a hoaxer and why? CM: It must have been in the late 60s, I worked for a large carpet store as a programmer. There wasn't much to do, most of the programs worked as desired as they were well written in COBOL. I was idle most of the time, but I had access to an old IBM mainframe. Not many people did have access to computers those days, so I was one of the first to have lots of time for playing with a computer. There was no solitaire for windows or tetris, not even "256 Easy Games to Program in TRS80 BASIC", so I started to write my own toys. Once I read something in the papers about fourth generation programming languages. These languages were interactive, so you were on line all the time when typing, testing and debugging your program. Well that was a waste of computer time. This had to be a hell of a toy. The paper mentioned APL, but it had two drawbacks, it used all kinds of strange Greek characters, arrows etc. that our computer didn't have, and it could do useful things such as matrix inversions with a few commands. I decided to make my own fourth generation language toy, as unreadable as APL, but only ASCII characters and only elementary integer math. I wanted to call it FOURTH, but there were only five character file names on the machine, so I called it FORTH. JH: But the carpet company folded due to computer problems, isn't it? CM: Yes it did, their order processing system was rather buggy, and I wasn't able to fix it. No big deal for me. Programmers were in short supply those days and soon I got a job at Kitt Peak Observatory. I found an unused Data General mini computer and I wrote my second version of FORTH for it. Everything went well until some of my co-workers started to play with FORTH too. One day my boss came in. Nobody was at the telescopes and four of us were playing tic-tac-toe on the computer. We explained the situation by saying that we invented a revolutionary new programming language, called FORTH, and that it would speed up our programming jobs considerably. Much to our surprise, my boss actually believed this. At this very moment the hoax was born. It must be late 1969 I think, almost 25 years ago. JH: From that moment FORTH became an official project of the Observatory? Were you ordered to write all telescope control software in FORTH? CM: At that very moment we were ordered to develop FORTH systems for all the mini computers at the Observatory. There were quite a few different machines. While doing this, we were adding more and more absurd features as we hoped they would kill the project very soon. We were adding a DO..LOOP construct, a visible return stack with >R and R>, a lot of odd division words, such as U/, M/ and /MOD, none of which seemed reasonable. We had disk blocks and no files. We had a word ;: (later known as DOES>) that was so weird it was impossible to explain. We had assemblers under FORTH and we did do our best to make the syntax as awful as possible. In the end we had a multi-user multi-tasking system. Any user could just type >R or !, and screw the whole thing up, but it kind of worked. We were amazed that our boss did never try >R or ! and so he thought the thing was for real. Now we did have FORTH on all the minis, we were ordered to do all necessary programming in it. JH: So you were very disappointed when the project wasn't killed and you were ordered to actually _use_ FORTH? CM: Yes indeed. It is no fun to use FORTH when assembler is so much friendlier. Most of the tasks asked for assembler anyway, but now we were forced to use our Forth assembler, which we just made as dreadful as possible. Only the length and the first three characters of each word name were stored, so there were a lot of unexpected word clashes, for example CONVERT and CONTEXT were the same to the system. We used that deliberately to obfuscate our source code. After a few more months the project was still not killed. Some useful work had even been done using FORTH. Other observatories around the world even ordered and used our software, quite to our dismay! JH: When FORTH didn't go away from your job, you decided to go away? CM: Indeed. After several more months, I could no longer stand that my hoax displaced all the good software tools that were once there. They had trashed all the good COBOL and FORTRAN compilers and the assemblers. I did my utmost not to cooperate, but still they praised me. Then I left the observatory. A female colleague, Elizabeth Rather, went with me. At that time the job market for programmers was not that good anymore. Because I had demonstrated to be a quite lousy programmer, nobody wanted to hire me and I thought they were right. After a few months of unemployment I decided to start my own company. I did not have experience in anything but FORTH, so my company became FORTH Inc. E. Rather was my employee. Now we were forced to exploit our own hoax in our own company. JH: And the company still lives today? CM: Sad but true. JH: Your first product, PolyFORTH was quite successful, wasn't it? CM: Yes it was. It was priced ridiculously, about $4000 for a single-user system. Still it sold many thousands of copies. It made even the simplest computer, say 8080 into a multi-user multi-tasking system. That single feature sold it, no doubt. That the system crashed so easily, that was only noticed after the purchase. Our main market was PDP11. UNIX was not sold commercially at that time, and it required a hard disk. JH: And then you gave a free FORTH to FIG? CM: FIG did not exist then. Some individuals had purchased Forth and they wanted it to be more widely used. I thought this was no good idea, so I decided to donate a castrated version of FORTH to DECUS, the DEC user group. I deleted all the multi tasking capabilities, I screwed up what I could screw up (such as three character names and vocabularies) and I did not give any documentation. This piece of crap was used, quite to my surprise. Its users formed FIG and developed it into FIG-Forth. JH: When the TRS80 came out, its developers wanted to build FORTH into it? If that had really happened, I would have made you damn rich? CM: They did ask me to write FORTH for the TRS80. I refused, or I asked a ridiculous price for it. It would have made me very rich. I could have been what Bill Gates is now, but I had learnt my lesson from the FIG incident. If FORTH were built into the TRS80, it would have come to millions of households. I surely believed that would have a devastating effect on our society. Better spoilt by BASIC than hooked on FORTH. JH: Do you think you really saved society by denying Tandy a FORTH for the TRS80? CM: Yes I did. Now FORTH is not mainstream. There is just a small percentage of our society that came to use FORTH. Our society can bear a small percentage of devious people. They enrich our culture somehow. Our society can also bear a small percentage of people believing in absurd religions, such as scientology. I FORTH had become mainstream, it would have had a detrimental effect on our society. JH: Why do you think FORTH was used by so many people, despite its awkwardness? CM: Well, for one thing, FORTH looks very simple to implement. Every idiot on the globe thinks he can write a FORTH implementation himself. And this is in fact true. I designed FORTH such that it was easy to implement. Back in the sixties I wanted to have my fourth generation language toy as soon as possible. That's why. As soon as they have their FORTH implemented, they discover that it is not easy to do anything useful with it. But then they are already accustomed to it and they go on. Not that anything useful gets achieved, but the work invested in learning and implementing FORTH is not easily written off. They go on for a very long time to see if their investment will be rewarded in the long run. And they pretend (and sometimes even think) that they are very content wit it. And when they buy FORTH instead of writing it, they continue to use it for exactly the same reason, In short, FORTH is not much more than cardboard and hot air, Easy to implement and easy to sell. Nothing more than that. JH: After FORTH Inc. you went into the chip design business? CM: Yes, I got enough of Forth, so I tried to find a new job. I wanted to find a job in the chip design business but I had no experience. Then I read something about dedicated microprocessors for certain programming languages. There was the WD Pascal Micro engine and the MIT LISP machine. Both were very crappy. I thought it would be easy to design a dedicated processor for FORTH. I designed it as a 4000 gate array, complete with multiply bug, so nobody would use it. It was purely an exercise for me, to get me more experienced with chip design. That chip became the NOVIX NC4000. It was actually produced. It even got a successor, the Harris RTX2000. I was more successful than many real micros. I thought this was a real disaster. JH: And then you departed from FORTH? You made something called OK? CM: Yes, my next computer self-training project would be as useless as it could be. I decided to design a 20-bit processor with stacks too limited for traditional FORTH and many dumb restrictions. It had to generate video as well, but only NTSC color, which would only be useful for the game market. And as the chip could directly access dynamic RAM, but only 1K words of ROM, it would be useless for games as well. That is the uP20. Nobody produced the thing thus far, which is a good thing. I wrote all my chip design software myself. It had to be strictly a toy and nobody else should ever be tempted to use it. That's why I designed a new language, called OK. It's basically programming system where you program directly in binary object code for a FORTH-like virtual machine. To make its use even more awkward, I designed a menu-driven user interface for it with only three keys. All you have is three keys. You must enter programs with it, draw chip designs etc etc. If anyone else is so mad as to use this, I think it's time for me to shoot myself. JH: Last question today. What do you think of the new ANSI FORTH standard? CM: It is a waste of money, brains and time. I find it sad that so much money and time is still wasted on my joke. The old FORTH addicts won't use it anyway. They think ANSI FORTH is no longer FORTH anymore. They somehow like the lack of standards, that you must write different code for 16-bit byte addressable machines and word-addressable 32-bit machines. The younger generation won't use FORTH anyway, whether standard or not. Well, that's what I hope anyway, I hope it will finally die out. The intermediate generation, that's who will use the new standard. But the standard will not prevent that everybody writes his own FORTH and that there are more FORTH implementations than FORTH applications. And the few applications in ANSI FORTH will violate the standard in several intricate ways so that they are not at all portable. Most (or all) of the ANSI FORTH implementations will be crap too. So it will be the same mess as now, despite (or thanks to) the standard. JH: Let's hope that your hoax will not celebrate its 50th anniversary. CM: I hope the same thing.