Mike Acton, the Engine Director at Insomniac Games, had a talk from CPPCon get posted on Gamasutra yesterday. Here are some thoughts, if you missed the video you can check it out here:
Mike has a very interesting job. Many developers have the luxury of accepting inferior performance for ease and speed of development. His job is at the extreme other end of needing to geek out as much performance as possible from a machine. So looking from his point of view provides a very different take on what we do. Some might think his talk is extremist, but remember his job is an extreme.
The thesis of his talk is that it isn’t wrong to write code that is designed for computers instead of humans. He warns us of overcomplicating problems by translating reality to computers while trying to maintain human understanding of reality with real-world models. To help us look outside of our ingrained real-world model thinking he gives us an alternative model of looking at software, its just transformations on data. Data is the focus, not code.
This doctrine isn’t necessary for each software engineer to follow, but it definitely is a helpful lens to evaluate our software. Looking at our software as data transformations is an aide we use all the time when we write unit-tests. Over prescribing real-world models could be a problem in certain domains too, it’s hard to know when a tool is helpful if we don’t consider the merits of the alternative.