by Dann Corbit » 03 Dec 2004, 20:59
I started programming in 1976. Back in those days, there was an important body called the ACM (Association of Computing Machinery) that had a regular journal. When someone invented a new algorithm, they would publish it there. Then other people would make comments on it and improvements and things like that. That is where we learned how to sort and make hash tables and compute math functions, etc.
Also, Donald Knuth published a nice series of books on programming. In those books, he not only described the algorithms, but also provided an implementation in a language called MIX (sort of a generic assembly language. I wrote a MIX emulator once just for fun). Anyway, when we got our computing assignments in college, we would crack open the appropriate Knuth volume and look up how to solve the problem. On those rare occasions when we could not find it there, we would trundle down to the Academic Computing Center and look it up in the ACM volume. Anyway, that is how we did things "back in the good old days."
It seems that today, something has changed. If you look at the old code that we wrote back in the dark ages, you will find citations all over the place. We would write things like:
/*
"The Art of Computer Programming"
Volume 1 Fundamental Algorithms
By Donald Knuth
Page: <whatever>
{description of what was used}
*/
Now, people want to pretend that they did it all by themselves or something.
Now, you may say that a thing like:
"ntroduction to Algorihtms"
By Cormen, C. Leiserson, and R. Rivest.
The MIT Press, 1998.
Is as good or better than actual implementations of algorithms (they use pseudocode exclusively). I can tell you that the descriptions are as important or even more important than bare code. But I can also tell you that because they provide only pseudocode, there are bugs in what they have done (and I have reported some of them to them).
At any rate, I pine for the good old days, which are now long gone and never to return.