[plt-scheme] Re: Novels and programs

From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com)
Date: Tue Feb 17 21:58:38 EST 2009

On Tue, Feb 17, 2009 at 08:38:32PM -0700, Neil Toronto wrote:
> YC wrote:
> >
> >On Tue, Feb 17, 2009 at 9:21 AM, <hendrik at topoi.pooq.com 
> ><mailto:hendrik at topoi.pooq.com>> wrote:
> >
> >
> >    The thing is, there are good writers in both camps.
> >
> >    Are there similar phenomena in computer programming?
> >
> >
> >I can find similar phenomena within myself (not saying I am a good 
> >developer though as that's for others to judge) :)
> I've written both ways for research papers, fiction, and programs, and 
> I've noticed the same effects in all three. For me, outlining is great 
> when I have a firm grasp of the high-level ideas and flow before I 
> start. Outlining often helps me figure that out as well.
> But there are cases where I just don't know enough before I start. See 
> below.
> In all three domains, I think rigid outlining/planning bends whatever 
> elements you *didn't* outline to the whims of the elements you *did* 
> outline. You end up with characters that are puppets rather than people, 
> research papers that are about the wrong subject, and programs you 
> didn't really want.
> Conversely, not outlining or planning leads to rambling and inconsistency.
> >But there are also situations, most often when tackling an 
> >unfamiliar problem domain...
> Hear hear!
> I'm making a DSL for a very rich problem domain that I'm quite familiar 
> with. I chose to make a language because it opens up exciting 
> possibilities, but I don't know what all of them are yet!
> Since I've just begun to explore what can be expressed in this new and 
> exciting family of languages, I can't really write enough test cases for 
> test cases to drive development. (If I used only current practice, I'd 
> end up with a broken interpreter comprised of special cases. Boo.) I 
> don't know the available, desirable and/or necessary properties, so I 
> can't develop by aiming for ideal properties.
> Outlining? Don't make me laugh. I need to discover what problems need to 
> be solved first. That's why I'm writing an interpreter!

May I suggest you read the paper "The next 700 programming languages" by 
Landin.  It was published in CACM sometime in the late 60's or early 
70's and is a classic in the field.  It was also one of the inspiratins 
for the entire field of functional programming languages, althoug the 
language style he proposes does have imperative features.

It attempts to explain what's specific and what's general about 
domain-specific languages -- this decades before the DSL acronym was 

> Chances are I'll rewrite everything at least ten more times. Then I'll 
> scrap it all and write a new one, starting from an outline. :)

Maybe the paper will reduce the number of iterations ever so slightly.
Or maybe you already know it all.

-- hendrik

Posted on the users mailing list.