Home > Articles

This chapter is from the book

The Gathering Gloom: 1962

With the success of ALGOL 60 under his belt, Dijkstra looked to the future in a 1962 paper titled “Some Meditations on Advanced Programming.” His first assertion is that software is an art that must become a science:

“Therefore I would like to draw your attention in particular to those efforts and considerations which try to improve ‘the state of the Art’ of programming, maybe to such an extent that at some time in the future we may speak of ‘the state of the Science of Programming’.”

He then goes on to paint a rather gloomy picture of “the state of the art.” He says that this change from an art to a science is “very urgent” because:

“. . . The programmer’s world is a very dark one with only just the first patches of a brighter sky appearing at the horizon.”

He explains this by describing what it had, up to then, been like to be a programmer given “nearly impossible jobs” using machines that have capabilities “exhausted to slightly beyond their utmost limits.” He explains that programmers under such circumstances fall back on “curious and tricky ways” to cajole their systems into working.

He calls the discipline of programming “extremely crude and primitive” and “unhygienic,” and complains that the creativity and shrewdness of the programmers encourage the hardware designers to “include all kinds of curious facilities of doubtful usability.” In other words, bad machines make bad programmers who encourage even worse machines.

What machines was he railing against? Rumor has it that it was the machines made by IBM.

As you read on in this paper, you realize that his specific complaint is that the machine architecture of the day makes recursion difficult and inefficient, and this tempts the compiler writers to constrain the language to prevent recursion.

He concludes the piece with an appeal to “elegance” and “beauty” and claims that unless programmers are given languages that are “charming” and “worthy or our love,” they will likely not create systems of “superior quality.”

This paper came at a time when the concerns of the industry were focused on quite a different problem. Those were the early days of “the software crisis.” It was becoming ever more obvious that projects, if they were delivered at all, were breaking budgets and schedules; were inefficient, buggy, and did not meet requirements; and were unmanageable and unmaintainable.

I presume that sounds familiar to you. The software crisis never really ended. We’ve just kind of learned to accept and live with it.

Dijkstra’s solution was science, elegance, and beauty. And as we shall see, he wasn’t wrong.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.