ucbesvax.turner@ucbcad.UUCP (07/01/83)
#N:ucbesvax:9100002:000:2689 ucbesvax!turner Jul 1 01:30:00 1983 I'd like to spark some discussion on the current perceptions of of Forth, and it's future. I mentioned Forth to a programmer who does uP control systems at Lawrence Berkeley Labs. He had spent a week or two (the last time I saw him) trying to disassemble an assembler, so that he could recode it to do something he wanted. His failure was weighing heavily on his mind, apparently. (He's a REAL programmer.) Forth would be good in his environment, which mostly involves stuff which is not time-critical at the millisecond level. His response to my suggestion was: "No, it's a cult language, nobody has done any serious applications with it." I didn't mention that he probably could have done his little hack to the assembler in a few hours in Forth, where the assembler is not big-time software. (This "cult language" is going to be used next year at U.C. Berkeley in the undergraduate uP interfacing course, for whatever that's worth.) Well, I'm not a member of the Forth cult (which I will readily admit exists), but I've found that the people whose minds are most made up against Forth are the ones who know the least about it. Forth has its problems (totally untyped, encourages idiom, etc.), but it has its niche pretty well cut out for it. Until recently. One rationale for Forth was that it was a small system for small systems. Memory density has increased radically since this argument was first advanced--small systems are a lot bigger than they used to be. Also: until recently, most microprocessor architectures did not support Forth nearly as well as the original PDP-11 implementation. (The 6809 seems to be bridging this gap quite nicely--note the recent "Wireless World" article. Those Brits know how to do small things well.) What is the future of Forth, especially in view of the growth in offerings of C compilers for micros? If there were a large, shared base of code, it might hold its own. As it stands, the prospects seem dim. It represents an advance over assembly language in being highly portable, and is an advance over BASIC in being highly extensible, but that seems to be it. That's a lot, but is it enough? Forth is a VLLL (Very Low-Level Language.) Or, as a friend of mine put it: "great, if you want to be your own compiler." Try doing the C post-increment operator ("++"). It always comes out at about a half dozen Forth instructions, no matter how you do it. Forth might make a good micro-assembler for a stack-oriented soft architecture. But then, many of the languages being used to microcode the new-wave graphics machines look more like C than anything else. Comments? Michael Turner ucbvax!ucbesvax.turner