As developers we’re so deeply involved with programming that we rarely ask ourselves about what this activity consists of. Plato argued that the best in any craft would not only know what to do from experience, but be able to explain why they do as they do. Following his advice, I’ll take a step back and investigate the nature and complexity of this activity and some analogies (some of them somewhat metaphisically charged, like “objects”) we commonly use to explain it.
Developer and philosopher. In the industry since the last millennium. Currently working mainly building interfaces with functional techniques.