5 ms·
"The programmer in question was adamant at the start that using FORTH was superior in terms of speed of delivery, space occupied by the code, and quality. In ot
by davi 18y ago
"The programmer in question was adamant at the start that using FORTH was superior in terms of speed of delivery, space occupied by the code, and quality. In other words, much better than programming in assembler. He'd deliver DK Jr in record time. Management believed him.
So he got Atari to spring for this $800 FORTH package that came with a thick binder of documentation printed on funny-colored paper (to prevent photocopying) and wouldn't let anyone near his code. Nobody else got a copy of this package. He mucked around in FORTH getting stuff prototyped and "ready to write code" for months. And after like five months he had one or two screens working, and no sound, and the thing sucked. And all the time he was bragging about how FORTH was going to let him whip through the rest of the game like snot through a greased pig (or something like that), but it was already late, it was clear he was at sea and wasn't going to come through."
..
"Later, I heard from a Coin-op veteran something along the lines of, 'Yeah, every couple of years someone discovers this FORTH thing and thinks they can do games in it, and it never works out.'"
- ks 18y agoFORTH probably has one of the coolest covers in the history of programming books... http://www.flickr.com/photos/joeljohnson/1396636973 http://www.flickr.com/photos/joeljohnson/1396636973
- omouse 18y agoNow the important question is...is that the fault of FORTH, or the fault of the developer? Are the developers novices who cannot handle the POWER of FORTH?!?!
- silentbicycle 18y agoCharles Moore himself said, "…FORTH is an amplifier. A good programmer can do a fantastic job with FORTH; a bad programmer can do a disastrous one." From my own experiments with it, I can certainly see where he's coming from - badly factored Forth rapidly collapses into an unintelligible mess, but when you work idiomatically with the language, it can be quite expressive. It's pretty low level, but worth considering in a project that would otherwise use assembler. I'd be wary of using it unless several team members were already familiar with it, though. I haven't done a great deal with Forth day-to-day because it's a pretty bad mismatch for the problem domains I usually work in, but getting into the mindset of it was as enlightening as learning, say, Scheme or ML. Forth has strong incentives for partitioning your code into functions ("words") that are each succinct enough to be trivially testable / verifiable, and then lets you define new words via composition, building up to your problem. It heavily favors the same bottom-up / "build your own DSL" programming style as Lisp. For such a minimalistic language it has several impressive tricks up its sleeve, on par with Lisp's code-is-data. The ease in parsing Forth-like code gives it a lot of potential as an embedded language, e.g. Zed Shaw's "stackish" (http://savingtheinternetwithhate.com/stackish.html http://savingtheinternetwithhate.com/stackish.html). This heavily-documented i386-assembly code implementing a simple, non-optimizing Forth interpreter is worth a look. (http://www.annexia.org/_file/jonesforth.s.txt http://www.annexia.org/_file/jonesforth.s.txt) There's something to be said for a language environment you can easily understand all the way down to the bare metal. It's not difficult to write your own interpreter for a Forth-like language (which is kind of the point).
- eru 18y agoAnd Forth is fun. It's a loveable language. Did you know that 'Open Firmware' uses Forth - as a shell and for configuration code, device drivers etc?
- silentbicycle 18y agoYes, and the FreeBSD bootloader, and no doubt several other things I'm not aware of.