For many different reasons, I finally got around to reading Beautiful Code.
Because Bryan Cantrill happened to be a classmate of mine, I started with his chapter.
The synchronicity is that in 1999 he was working on a problem related to priority inversion on Solaris. Intriguingly, at the same time, a friend of mine at SGI was also working on a similar problem related to priority inversion.
In effect, both companies had decided – independently – to build real time kernels and had independently ran into similar, although very different problems. At SGI we had to figure out to make reader-writer locks deal with priority inversion while not crippling performance.
What made this fascinating is that I tend to agree with Bryan when he talks about software being like math.
Although I dread using that analogy because real mathematicians would raise an eyebrow….
The more important point is that once you decide to tackle an area in software, the reality is that the solutions tend to have the same attributes and the challenges tend to be the same, what makes software engineering is that the actual solutions differ greatly because they are embodied in a specific implementations.