I've read of Zed Shaw's critique of K&R in "Learn C the Hard Way", and I've gathered that he had indeed raised an interesting range of issues, regardless of the backlash.<p>I've tried tracking that critique down to no avail. A link to Shaw's website that I found wasn't accessible,[0] nor was any archive.org copy of it.[1]<p>Does anyone happen to have a copy of or a link to it? I'd be interested in reading through it.<p>(Disclaimer: I'm not interested in refueling a debate, I just would like to read the critique or find out its salient points.)<p>[0] http://c.learncodethehardway.org/book/krcritique.html<p>[1] http://web.archive.org/web/*/c.learncodethehardway.org/book/krcritique.html
I can see why Shaw made the article less accessible via search. Shaw has done the same with other essays he wrote around the same time. The basic analysis is sound. If you write programs like those in <i>The C Programming Language</i> those programs will lack mitigations for buffer overflows and null pointers.<p>A weakness of this essay is it jumbles pedagogical and engineering considerations together for dramatic effect. The defensive code Shaw does not find in K&R is only justified if crashing is both likely and worth the effort to prevent. YAGNI and "let it crash" are alternative engineering approaches.<p>The strength of Shaw's essay is that the grappling with the absence of defensive programming motivated <i>Learn C the Hard Way</i> to introduce Valgrind and Make right away. And the outrage probably adrenaline fueled Shaw's writing. All the controversy was consistent with Shaw's public image at the time, to boot. But in the end, the essay, like many of the period, lacks nuance. Their fading searchability is probably a sign of Shaw's recognition.<p>I think <i>Learn C the Hard Way</i> is better for Shaw having written the essay and I think his book is a pretty good introduction to C programming in part because it introduces Make and Valgrind and eschews IDE's. K&R is also good, but it's written with the assumption that the reader is ok learning from material written in a documentary style. That's less common today than four decades ago.
I doubt my Google-fu is better than yours (and it looks like Zed has basically retracted what he said anyway by way of going so far to remove it from the Internet) but one of the salient points was definitely "some of the code in the book doesn't compile or do what it says it does."
Library Genesis has almost everything.<p><a href="http://gen.lib.rus.ec/search.php?req=Learn+C+the+Hard+Way" rel="nofollow">http://gen.lib.rus.ec/search.php?req=Learn+C+the+Hard+Way</a>