In the late '50s there was a big debate amongst the programmers of the day. Should recursion be a feature in our languages. The Algol 60 commitee debated this for some time; and the debate was not entirely civil.

Dijkstra was a big proponent of recursive functions. He thought all functions in Algol should allow recursion. He was nearly laughed out of one meeting for making that case. Others, who were far more concerned about efficiency of memory and time thought that recursion was too costly to allow. They accused Dijkstra of just wanting to "play". And who can blame them, the computers of the day were vacuum tube monstronsities with memories maintained in accoustic waves in big tubes of Mercury that had to be maintained at 45C. Cycle times were barely sub-millisecond. Stacks were not part of any computer hardware at the time.

Dijkstra took the long view. He thought that recursion added to the expressivity of a language; and that the biggest cost of an automated system was going to be _programmers_. This was not true at the time. Even very expensive programmers were cheap compared to computer time. If a programmer could save one hour per week of computer time, it would pay back his salary in relatively short order. In those days, efficiency at the bit and millisecond level was a top priority.

In the end, after much cajoling and nasty argumentation, Dijkstra won the day. Algol 60 was a recursive language. It's not clear to me, however, whether this helped, or hindered the acceptance of Algol 60. Most Americans of the day felt that the language was too academic (translation: slow and impractical) for commercial application.

Reply to this note

Please Login to reply.

Discussion

Did anyone presented an argument towards infinite recursion? I can see how that could be problematic....