The Workmans Tools

June 21, 2020

The trend in software engineering seems to be to keep building “better” tools in the hope that this will stop us making more of a mess of things. It’s not clear that this is really working. It’s interesting to note that the parts of my system that are reliable and robust, and just keep working, tend to be old bits of software written in C.

The bad workman always blames his tools. It’s not that C is the perfect language, and it’s not that more modern approaches are bad (I enjoy writing in many of these languages). But programming in C makes everything explicit. For example, sometimes we care when allocations and deallocations occur. We probably should care more than we do.

C programs that scale well have the same characteristics as small well-written C programs. They achieve clarity on the problem. Simplicity is usually a good proxy for clarity. Clarity is a good first step toward not making a mess of things.

Building better tools is certainly a worthwhile pursuit, and can help make software better. But this shouldn’t be at the expense of developing the ability to solve problems well.