"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.'"
Now 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?!?!
Charles 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).
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) 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).
Pedantic mode activate: it's actually the developer of the atari home-console clone of Nintendo's arcade Donkey Kong. I suspect the original developer comments might be in Japanese.
Maybe I'm imagining things, but I just don't like it that US developers are often seeming to get the credit for a Japanese success. Why don't we hear stories about the original coders of Donkey Kong? Miyamoto designed it, but didn't code it, so maybe it's because it's not code romantic (?)
Horribly off-topic, but interesting (at least I think so):
As far as I can tell, "(" is in fact valid. In the URI standard [1], a URI has a `path` which is made up of segments. Each `segment` is a set of pchars delimited by by "/". The `pchar` character class includes the `unreserved` character class which contains the `mark` character class which contains both "(" and ")".
That said, I'd argue that "(" and ")" should never have been allowed because of the tendency for people to mention web sites like this (news.ycombinator.com). I'd also argue that trailing punctuation should be ignored for cases like this news.ycombinator.com.
But oh well, it is too late now. These characters are in URLs and that means they are here to stay.
FYI, rfc3986 is the latest for URI syntax (obsoleting rfc2396), but you're still right, and the grandparent comment is wrong: parentheses are legal in URIs.
News.YC also mishandles '<' '>' around URIs, which is the recommended manner for delimiting them. (Consider, for example, <http://www.example.com>.)
; Prizes
; These are shoved into players; left-bottom justified in 8x8
; There's some confusion as to what to call the damn things....so I'm
; gonna do what I like, here...
...
; The "Birthday Cake" [I think...]
...
; The Purse ["...omigosh...that's not a /Birthday Cake/???"]
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.'"