Can pure computing in the style of Edsger Dijkstra be a gateway to understanding computers?
There was an interesting belief several decades ago, most prominently held by Edsger Dijkstra, that computing as a field could be separated entirely from computers, the machines that engage in computing. The argument went something like this:
- The theorems of computing are true regardless of the machine they are implemented on. Put another way, the only machines to be called computers were those machines that could engage in computing, and any such machine is equivalent to any other, save for implementation details
- Algorithms, the formal method for defining computation, exist independently of the machines that implement them
- Limitations on computation are not truly given by hardware (if they, the limitation is temporal, not technical, in nature) but by the algorithm itself
In other words, while algorithms are not useful unless they have a machine to implement them, the truth of what they are and can do exists independently of such a machine. Thus, the conflation of program and machine, of computing and computer, is wrong.