in reply to I *definitely* agree with Dijkstra
in thread about Coolness, Impatience and Complexity

Indeed, the functionality of the device doing the underlying operations is the work of the mechanic, or in our case, the EE. How often have abstractions in CS led to practical discoveries? The Turing Machine was a theoretical construct, but that construct is actually what led to the development of the computers that we use today. Its simple language led to the earliest machine and assembly languages.

And the higher level languages were results of abstraction from assembly language. Object-oriented programming is a perfect example of the practical fruits of thinking about the way that tasks are performed on an abstract level (avoiding the obvious pun on abstraction).