A Philosophy of Software Design

Lance Bachmeier no at spam.net
Sun May 24 13:13:16 UTC 2026


On Sunday, 24 May 2026 at 01:39:48 UTC, Walter Bright wrote:
> by John Ousterhout

> For example, the title of Chapter 10 is "Define Errors out of 
> Existence". I've been trying to do that since the 1980s.

I haven't read that book, but Ousterhout has made the same point 
elsewhere for years, and I've never grasped the practical side of 
his argument. It would be nice to do, but it's a necessary part 
of a working program.

> I've not vibe coded enough to see it for myself, but I've been 
> told that AI generated code simply generates code until it 
> works. It doesn't do very well at managing complexity. 
> Something to watch out for.

There's a solution to this. I have the LLM program in a "new 
language" and upload the spec with some examples. No global 
state. A maximum of 60 lines in the body of a function. A maximum 
of 10 function arguments. No code blocks. Only goto for jumping 
around inside the function. You need to change the syntax to get 
it to accept that you have a new language, so I require line 
numbers at the start of every line.

The problem with just telling the LLM to write a D program that 
does such and such without restrictions is that it wasn't trained 
to impose constraints like this to keep the complexity under 
control, and there's no way it can work well with the amount of 
context that's required to write a program that can easily be 
modified in the future.


More information about the Digitalmars-d mailing list