Article For Thought

Kurt Griffiths kurt.griffiths at
Thu Dec 20 17:31:15 MST 2007

Wow. That sounds sweet. Having a domain-specific language can really help
when creating a sequence of rules. This is why scripting is so pervasive
in game engines. Can you imagine having to hard-code all the cut-scenes,
interaction logic, maps, etc? It sure beats a complex data model and/or lots
of hairy if-then statements. This is exactly the the sort of thing Paul
Graham discusses in his arcticle about bottom-up programming:
On Dec 19, 2007 11:19 PM, Charles Curley <charlescurley at>

> On Wed, Dec 19, 2007 at 10:44:16AM -0700, Nathan Blackham wrote:
> > Without futher ado:
> >
> Intersting. I'm not going to read the whole thing, but I do appreciate
> his point.
> 20 years ago, I had a compiler, interpreter, operating system, and
> maybe an assembler, all in 8 Kb. 12 Kb on 32 bit processors. It ran in
> as little as 16 Kb, but I preferred 24 Kb. I could port it to a new
> processor in a few weeks, and once I had the processor down I could
> put it on a new computer in as little as an hour. The source code fit
> on a DSDD floppy, along with editors, assemblers, the cross compiler
> (it was self hosting), decompilers, single steppers, disassemblers and
> other tools. Oh, and a few games. And an IDE.
> This was not a toy. I made my living writing fun things like dimmer
> boards and microprocessor development stations with it.
> I understood it. Far better than I understand any of the tools I use
> today. I could go in and tweak it, and know the implications of doing
> so far better than the implications of tweaks I make today.
> That system also took an unusual approach to programming. If you write
> the code to run, say, a washing machine, in C or Java, you write a
> washing machine in C or Java. But what this tool kit let me do was
> write a language for writing washing machines in. Then writing the
> actual washing machine would be easy, less than a page of code,
> because you're writing it in a washing machine language. "rinse" is a
> verb in the language you're working in, not the name of some function
> or object. I didn't care about functions or objects; I just wanted to
> get those clothes rinsed.
> Bloat? There was none; you can't afford bloat when you only have 8 Kb
> of ROM space and the processor is something brain dead like an 8080.
> --
> Charles Curley                  /"\    ASCII Ribbon Campaign
> Looking for fine software       \ /    Respect for open standards
> and/or writing?                  X     No HTML/RTF in email
>    / \    No M$ Word docs in email
> Key fingerprint = CE5C 6645 A45A 64E4 94C0  809C FFF6 4C48 4ECD DFDB
> Version: GnuPG v1.4.6 (GNU/Linux)
> iD8DBQFHagmH//ZMSE7N39sRAktdAJ4pyDgcimSaZDHekSNlBgGGWj+L5wCdFhm+
> aYcqg1EzvYFiA3Q//ulAD7c=
> =I0F+
> /*
> PLUG:, #utah on
> Unsubscribe:
> Don't fear the penguin.
> */


More information about the PLUG mailing list