A Philosophy of Software Design
Walter Bright
newshound2 at digitalmars.com
Sun May 24 01:39:48 UTC 2026
by John Ousterhout
https://www.amazon.com/Philosophy-Software-Design-2nd/dp/173210221X
I did not know it, but I've been looking for this book for a long time. I'm
about halfway through it.
It's about managing software complexity. Complexity is the bane of all
significant software. Over the years I have battled it, and have circled into
many of the techniques described in the book. Those who have seen my talks know
that a recurring focus is how to use D to manage software complexity.
This book is an easy read, and only $10. It's worth far more.
For example, the title of Chapter 10 is "Define Errors out of Existence". I've
been trying to do that since the 1980s.
Back in the 80's, a C compiler was required to support strings of at least NNN
characters in length. So most C compilers would put a check in for that, and
issue an error message on overflow, and then recover from the error.
My compiler took a different approach. It would just keep enlarging the string
buffer until it ran out of memory. Then there was only one error message - "out
of memory" - and the compiler would abort. This applied to all sorts of
arbitrary limits the C spec placed on things. There was no need to add error
recovery code.
But still, the D compiler is overly complex, and so is Phobos. We've still got a
lot to learn.
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.
More information about the Digitalmars-d
mailing list