Saturday, April 24, 2010

Edsger W. Dijkstra's manuscripts

Edsger W. Dijkstra should be a familiar name to any computer science student, since one of the most important algorithms, Dijkstra's algorithm, is taught in graph theory.

Besides being a brilliant computer scientist, he's also written some articles regarding the computer science discipline and the computer industry. Click here for the link.

As such, most of what he covers are quite esoteric to those without any programming experience. Case in point, when I first started programming, I had to get used to the fact that in many languages, numbering starts at zero. Ie, the the first item in a list is indexed as 0, the second item is indexed as 1, and so on. An interesting view I discovered is that according to him, many mathematicians view computer science in poor light, and these are usually the poorer mathematicians.

My favourite piece is The Humble Programmer.

Some quotes:
On poor mathematicians:

I gave the puzzle as a sobering exercise to one of the staff members of the Department of Mathematics at my University, because he expressed the opinion that programming was easy. He violated the above rule and, being, apart from a pure, perhaps also a poor mathematician, he started to look for interesting, non-obvious properties

On poor mathematicians again:

Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.

On learning:

We are all shaped by the tools we use, in particular: the formalisms we use shape our thinking habits, for better or for worse, and that means that we have to be very careful in the choice of what we learn and teach, for unlearning is not really possible.

On the Internet's impact on computer science:

No, I'm afraid that computer science has suffered from the popularity of the Internet. It has attracted an increasing —not to say: overwhelming!— number of students with very little scientific inclination and in research it has only strengthened the prevailing (and somewhat vulgar) obsession with speed and capacity.

On the power of machines:

Machine capacities now give us room galore for making a mess of it. Opportunities unlimited for fouling things up! Developing the austere intellectual discipline of keeping things sufficiently simple is in this environment a formidable challenge, both technically and educationally.

On society's expectations:

.....machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming had become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products. To put it in another way: as the power of available machines grew by a factor of more than a thousand, society's ambition to apply these machines grew in proportion, and it was the poor programmer who found his job in this exploded field of tension between ends and means. The increased power of the hardware, together with the perhaps even more dramatic increase in its reliability, made solutions feasible that the programmer had not dared to dream about a few years before. And now, a few years later, he had to dream about them and, even worse, he had to transform such dreams into reality!

No comments:

Post a Comment