For some reason I’m fascinated by programming language design. One reason is that innovation can happen at the tools level, and the tools that fuel software are undeniably important.
In the hands of a great author, writing on this topic weaves together the technical, the social and the personal forces at work. One of my favorites is Worse is Better, an analogy that applies beyond programming languages. Another is Paul Graham and his work on Arc.
In The Periodic Table, Primo Levi tells a story that happened when he was working in a varnish factory. He was a chemist, and he was fascinated by the fact that the varnish recipe included a raw onion. What could it be for? No one knew; it was just part of the recipe. So he investigated, and eventually discovered that they had started throwing the onion in years ago to test the temperature of the varnish: if it was hot enough, the onion would fry.
We’re going to try not to include any onions in Arc
An exciting part about Graham’s work is that he starts by admitting Unix/C has won. Then he proceeds to set his goal even higher. This is the spirit of design, of always turning whatever situation you have now into something even better.