Article For Thought
kurt.griffiths at gmail.com
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 charlescurley.com>
> On Wed, Dec 19, 2007 at 10:44:16AM -0700, Nathan Blackham wrote:
> > Without futher ado:
> > http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.html
> 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
> http://www.charlescurley.com / \ No M$ Word docs in email
> Key fingerprint = CE5C 6645 A45A 64E4 94C0 809C FFF6 4C48 4ECD DFDB
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> -----END PGP SIGNATURE-----
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
More information about the PLUG