Hacker News new | past | comments | ask | show | jobs | submit login
C: The Complete Nonsense (seebs.net)
97 points by fogus on May 12, 2010 | hide | past | favorite | 34 comments



It seems like it used to mean more to be published. Somehow, the mere existence of your book on the shelf made it clear that a high standard for quality had been met. In recent years, especially in technical books, this doesn't seem to be true anymore.

One problem is that there's 40 books on any given subject. Each time a new language or tech comes along, there are lots of publishers wanting to be the ones to sell millions of copies. From the point of view of revenue, each publisher has about the same chance of making a sale to an unsuspecting buyer, so it almost doesn't "matter" (to them) if a book has errors everywhere.

Another problem is that the industry moves so quickly. Who cares what was published even 5 years ago in tech, in most cases? The problem is, any true experts in a new field won't be working at publishing companies, they'll be doing the high-paying jobs building the actual products. So unless the author sees an error, no one else will, before the book goes to print.

The responsibility then falls to the consumers of books. If you want accuracy, you need a more peer-reviewed model; or, simply, peers, for asking questions. Something like Wikipedia has both the immediacy of the web and the accuracy of a huge number of eyeballs (minus a contingent of vandals that seems insignificant in practice).


From the point of view of revenue, each publisher has about the same chance of making a sale to an unsuspecting buyer, so it almost doesn't "matter" (to them) if a book has errors everywhere.

I think this used to be true, but I buy all my books on Amazon now and I can choose the book with the best rating.


Please remind those of us reading this thread who are less familiar with the reliable books on the subject what books are good books about C. I know about K & R, but what else do busy C programmers recommend?

After edit: when you know a book is crap, do you say so in reviews on Amazon.com? That's helpful for people browsing books by subject.


A dog eared copy of http://www.careferencemanual.com/ is what I keep on my desk at work, it is not a learn C book, it somewhat unsurprisingly is a reference manual.

Authors(Samuel P.Harbison and Guy L.Steele Jr.) write concisely and clearly.

For tricky C language questions CAR is much preferable over trying to find answers in the standard.


I had misremembered titles last night, and thought that the book used as a reference here was the one panned in the article submitted to open this thread. Whew! The book we have is actually Harbison and Steele. I tried to read the Amazon recommendations carefully before buying.


I've heard that C Interfaces and Implementation is a good read after you've got an understanding of the language. I don't know any good encyclopedic references, though. I'm still learning the language myself.

I don't see what's wrong with saying that an educational book that has misinformation in it should be avoided on Amazon. With other things it might be more open to opinion, but if whole swathes of a reference book are filled with errors, I don't see what's wrong with writing a negative review.


I found Peter van der Linden's Expert C Programming to be excellent, and, as a bonus, fun to read (which you can't really say of K&R).


Word (although I find K&R a pleasant read). My copy is at the office; I often take a quick glance through it when I need to poke at some C code and usually end up spotting latent bugs.


This thread has some good recommendations:

32 years on, K&R's "The C Programming Language" still stands alone

http://news.ycombinator.com/item?id=1245255


For newbies, Kelly and Pohl's "A Book On C" has been excellent.


I don't know if it's considered good, but here's an online option:

http://publications.gbdirect.co.uk/c_book/


Why the mean-spirited tone and expose? Why not just submit the errata as he sees it?


When an otherwise quality work is marred by a few errors the responsible thing to do is submit an errata report to the author. However, when a work is so low quality that every single page appears to contain a glaring error, as seems to be the case here, the responsible thing to do is warn others away from it with as loud a voice as possible


Four editions worth, too


I think that from "I spent about a decade on the C committee—and [2] unlike Schildt, I actually showed up [..]" we can assume that he has some kind of history with the person in question [1].

Peter seems also to get quite some share of hate mail [3]. Despite all that and the tone of the book review I think he is quite right about the bad quality of the book.

[1] http://en.wikipedia.org/wiki/Writings_of_Herbert_Schildt [2] Peter Seebach, http://www.seebs.net/res-w.html [3] http://www.seebs.net/humor/hate.html


I spent about a decade on the C committee

I know this sounds mean, but whenever they say they spent a decade on a committee, I can almost guarantee you that the next thing they say will be true yet inconsequential.

I say this because I have done my share of proof-reading C and C++ books. And there are a lot of errors. But that's not the worst of it. The worst books don't teach you anything, are full of errors, and the author continues to try to impress you with his work on the standards. The best books teach you and have a few errors that you will figure out on your own.

(I got into the proof-reading and writing biz years ago for a couple of years. How? By writing a letter about how book X was so full of mistakes it was unreadable. So I speak from experience)


[3] oddly reminds me of bash.org


This wasn't a handful of innocent mistakes. This was such severe ignorance that it was actually negligent to publish the book at all. He made a living of misinforming a generation of programmers.


For way more background on that than you probably actually want, check the archives of comp.lang.c...


For a leaflet-sized errata, that would be the case. Here, it seems, the errata would be comparable, if not larger, than the original book.

I wonder if the guy could get away with publishing a book called "What's Wrong in C:TCR". Any copyright lawyers want to chime in?


It sounds like there are so many flaws that it would not be worth anyone's time to note them all.



I just imagined a hilariously awkward social encounter between Christian and Herbert Schildt, perhaps in a book signing.

"We meet again, Mr... Seebs"

I wanted to share this with those with similarly distorted imaginations.


Not sure what the point is in bashing a book thats known to be crap.


There is nothing more annoying that when you are learning to program, and you get some error due to the examples.

You check everything, recheck names, and it still crashes.

You try to find out if you are using the compiler right, if you have the correct version, still crashes.

So you try to type it in another editor, maybe the editor is adding CRLF from dos, and the compiler is expecting Unix EOL, nope, still crashing.

Maybe there is a problem with the machine, so try a different machine, nope, still crashing.

It is enough to turn anyone off of computer science. When you are first starting out, there are so many things that already can go wrong, and so much to learn. This is just bad!


I get the sense Herb hasn't moved with the times, and is pretty much stuck in the ways that served him before the internet, hence the lack of improvement.

How bad do you have to be to not continuously improve what you did before? Also, his examples to me scream that he hasn't or doesn't really write code for a living, or if he does, it's with a community of other fossils like him.

I can't respect any programming book writer who doesn't have some kind of automation in place to ensure all his code samples (1) compile, and (2) work as expected.

Basic stuff nowadays.

And even me, with not very much C cred, can see his C code is clearly not idiomatic for C these days, if you compare it to some well-written OSS C.


This guy's bashing (which I remember reading from years back) is part of what makes the book famously bad. At least to me.

I find the tone of the intro of the updated article very amusing, I guess it's the typical underdog story. He used to be some random guy on the Internet who liked C; now he's an experienced professional who spent almost a decade on the C committee. Awesome.


I didn't know. I actually have it on my shelf. My dad gave it to me when I was just starting C about a year ago. I guess this explains why some of the code didn't run.


I also have a copy, and was only shunned on IRC a few months ago for using it.


It's not known to everybody, apparently.

http://en.wikipedia.org/wiki/Writings_of_Herbert_Schildt


http://en.wikipedia.org/wiki/Writings_of_Herbert_Schildt#Rec...

"Schildt's books have a reputation for being written in a clear style that is very easy to understand.[10] Their technical accuracy, especially of the earlier works, has been challenged by reviewers, including ISO C committee members Peter Seebach,[11] and Clive Feather,[12] Steve Summit, author of the C FAQ[13], and numerous reviews in C Vu from the ACCU.[14]"

I'm not an expert on C, writing, publishing or proof reading. Over the last twenty years, whenever Schildt's name or books have come up in conversation online or off, there has always been an associated foul odor.

There are so many good books on C, it's just not worth it to waste your time and space on his books.


It's "known to be crap" among the people who already know the language, because of folks like Seebs. That's the point.

It's a little dated now, I suppose, but it may be worth remembering that Schildt's books were very popular at one point. Quite a number of people learned C from that awful book, with no idea how many bad habits they were ingesting.


To demonstrate that the new edition is still crap.

It does not only warn (new) people to stay away from it, it also reflects badly on the publisher, who only seems able to bring out shoddy work.


Not to speak of what it says about a professor who uses it as the text for an introductory course...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: