On Mon, Feb 28, 2022 at 1:47 PM Dan Cross <crossd(a)gmail.com> wrote:
[snip]
Oops, I forgot to mention something. I imagine a lot of readers of this
list are familiar with this paper, but for those that aren't, this
resonates:
https://www.usenix.org/legacy/publications/library/proceedings/sa92/spencer…
On a personal note, when I was learning to write C for Unix, I read a lot
of open source code to see how to do it. So much of it was riddled with
complex #ifdefs that I kind of got the impression that that was how things
were _supposed_ to be written. Then I read the Spencer/Collyer paper, and
modified some program that I'd written to use abstract interfaces; it was
so much easier to reason about that I was kind of shocked that others
didn't do the same.
I suppose the point is that many programmers learn by copying what has come
before. However, so much of what's out there is a poor example of how to do
things; we're stuck with a feedback loop of poor design.
- Dan C.