> But, there is a lot to offer in the industry of programming. Knuth picked an order to offer this information and is going in that order.
Perhaps it's sacrilege, but I've always considered it kind of weird to take on a project like TAOCP in a field that's growing far faster than it can be documented by one person.
Sometimes I believe it strongly, sometimes I don't. Do deep fundamental, mathematical analysis help in the accidental social complexity found on programming stacks sometimes ?
Last time realized that basic algebra (equivalence relation and classes) were helping me to solve a concrete programming problem I was having (having something to do with syntactic trees). It was a big surprise to me. Equivalence relations are a simple concept [0], and maybe my problem could have been solved without thinking of it, but still, some fundamental math helped me for my problem, and I was stunned by that.
In fact those situations are pretty rare, it was the first time it happened to me that a mathematical concept helped me to understand how to write a certain algorithm that isn't specifically mathy (as opposite to implement something purely math related), so I would that, sadly, your previous comment is on the point.
Certainly, I realize he's not writing about the cool new library for Python or something, but even just looking at actual computer science stuff, the field is expanding rapidly.
Look at Knuth's future book plans, and consider all the things he's not putting in them that are current. He's also revisited the books some, and plans to do so again in the future.
I don't mean to take away from the books - they're beautiful and full of a lot of timeless knowledge. There's just something that seems a bit ... I can't even find a word for it ... about the endeavor.
I believe the word you're looking for is sisyphean, and I actually don't agree.
You've yet to make the case that the fundamentals of computing science are changing so much that documenting them is not a worthy task.
Again, basic algorithms and data structures simply have not changed. Their performance characteristics, methods for optimal implementation, etc, certainly have as computer architectures have evolved (think reordering CPUs, multi-level caches, changes to data storage technology, etc). But the basic algorithms remain the same. Quicksort is still quicksort.
It's true that over the last decade some new concepts have reached a new prominence (e.g., lock-free data structures), but those are additions to the field. They certainly don't invalidate the basics.
you are very correct. I've spent the last 7 years in bioinformatics doing algorithm development and it's almost entirely specialized versions of existing and established algos from decades ago.
Yup, because the math (ironically, the part most people find most difficult about the series) doesn't change. Algorithmic complexity, number theory, set theory. These are things that show up again and again in "higher level" concepts.
These are computer science books, not software engineering books.
Woah there! No one ever said anything about 'not worthy'. I have tremendous admiration and respect for Knuth and his work, and like you say, a lot what he's written is timeless.
It would really help if you could list some specific ways that the theory of computation has changed since the writing of TAOCP, and some evidence for why you think that theoretical CS is changing faster than can be documented.
TAOCP has not been written, several volumes of it have. It remains to be seen whether Knuth will even be able to finish what he set out to do, let alone include new things.
> faster than can be documented.
By one person, I wrote.
Here's one that I think is interesting, difficult and evolving: distributed systems. This shows interesting work happening with version vectors, for instance, over the past 15 years: https://en.wikipedia.org/wiki/Version_vector
No need to worry about that one. Looking at Wikipedia's list of volume's, looks like distributed systems are not being covered. But I agree with you anyway. Let's quote the man himself (taken from his website): "As I continue to write Volumes 4 and 5, I'll need to refer to topics that belong logically in Volumes 1--3 but weren't invented yet when I wrote those books". He plans to complete Volume 5 by 2025. Tune in ten years from now to see how it goes.
Knuth is currently 78 years old. It would be interesting to see if he lives to 88, never mind still have the intellectual and or physical capacity to complete such a work.
I wish him the best of lucky and sincerely hope he pulls it off.
My suspicion is that the growth rate of computer science is partially due to Knuth's work. TAoCP has a fair amount of original research in it and Knuth developed tools like the Stanford Graph Base, original algorithms, and original numerical methods as part of his research for the book...and TeX and Metafont for it's publication.
Perhaps it's sacrilege, but I've always considered it kind of weird to take on a project like TAOCP in a field that's growing far faster than it can be documented by one person.