The weird, accidental material conditions of the practice of software development have an impact on the sort of practice it facilitates. For example, the separations created by long compiles created invitations to pursue other practices… but since software engineers are still tied to their desks, more or less, and since they once didn’t have all the Internet to peruse or gossip upon, a relationship with reading was a natural thing to develop. I’m sure not everyone chose to pursue the craft practice of programming like Jock did, but I bet a great many were already thinking about algorithm design and performance optimization and the like, and the everyday routine of software development facilitated that sort of knowledge development.

The point isn’t nostalgia, that things were better in simpler times, but that the conditions we create (deliberately or accidentally) for and around the practices we pursue have a tremendous influence on the ways we carry out those practices. In the case of computer programming in particular, the apparent benefits of speed, efficiency, accessibility, and other seemingly “obvious” positive virtues of technical innovation also hide lost virtues, which of course we then fail to see.