[plt-scheme] Re: Novels and programs
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!
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. :)
Neil