Thoughts on the Humble Programmer

One of the most thoughtful essays in computer science by Edsger Dijkstra

June 29, 2016 - 3 minute read -
cs

The Humble Programmer by Edsger W. Dijkstra is an essay that every computer science student should read. Dijkstra, one of the fathers of computer science, changes the way a programmer views their work, eloquently defining how we must approach our profession. He understands the humble beginnings of programming, where operators would sit for hours in front of machines the size of buildings, programming task-specific programs that only themselves could see, marveling at their own cleverness as they pushed the limits of their machine. People were more impressed by the machine itself rather than the program that was running on it. The programmer lived in the background.

In those days the complexity of the program was limited by the machine. The programmer had ultimate control. As the power of computers grew, Dijkstra recognized, “that one of the most important aspects of any computing tool is its influence on the thinking habits of those that try to use it.” The statically typed languages that arose abstracted the underlying hardware, giving programmers a higher level of control, also limiting their ability to use the machine. By creating more powerful ways to program computers, we also began to hit the limit of complexity our mind could handle while programming. Even today, in school we learn to abstract smaller code snippets into functions and functions into objects so that we don’t have to carry the mental burden of understanding how every single line of code interacts with the rest of the code base. The languages we created then began to have a powerful influence on how we designed computer systems far into the future, “the tools we are trying to use and the language or notation we are using to express or record our thoughts, are the major factors determining what we can think or express at all.”

This was the first time in human history, that on a significantly large scale, a group of people began to understand the limits of our intelligence. Dijkstra understood it best. Technology is meant to enable us, but it too often freezes our ability to have free thought. He said about computers that “in that capacity, their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind.” Today we talk a lot about the impact of technology on our society, but what we really need to be talking about is the impact of technology on our minds. Computer technology has changed the way we interact with our world. Originally, the immense power of modern day computers influenced the way programmers went about their work. Today the power of computing technology is touching every single aspect of life from the way we buy to the way we interact with friends. Is it enabling us or is it limiting our minds? One thing is for sure, it is changing the way we think, and that is more dangerous that we could have ever imagined.