C: The Complete Nonsense (4th Edition)

Discussion in 'C Programming' started by Seebs, Apr 9, 2010.

  1. Seebs

    Seebs Guest

    Based on feedback from people here, I've concluded that it was possible
    that the earlier edition of C: The Complete Nonsense did not provide the
    reader with a fair, accurate, and reasonably comprehensive picture of
    the quality of Herbert Schildt's book, "C: The Complete Reference".

    Having put a few hours of work into reviewing the current edition, I have
    created a new page which analyzes it in some detail. I have concluded that
    the previous document significantly understated the abundance and depth of
    misunderstandings and errors in Schildt's book. Even the 4th edition, in
    which several errors pointed out in my previous page have been corrected,
    continues to astound me with the sheer depth of its errors.

    Perhaps more importantly, I had not previously noticed, or remarked on,
    the great volume of things which were simply not covered by Schildt, which
    should have been in any book purporting to teach C or to serve as a reference
    for it. In fact, the errors of omission are in some cases more serious.

    Anyway, here we have it:

    http://www.seebs.net/c/c_tcn4e.html

    Special thanks to a number of reviewers and commenters, especially Keith
    Thompson and der Mouse, both of whom caught me out in a number of humorous
    errors. (For what it's worth, I believe that one or two cases were ones where
    I had mistakenly identified some of Schildt's writing as being in error, and
    a dozen or more were cases where I had failed to spot all of the errors.)

    As always, comments, corrections, and feedback are welcome. (Disclaimer:
    By standing policy, I will delete any private contacts from Nilges unread.
    I also won't actually read his posts, except for amusement value. If someone
    thinks he's spotted a genuine error, feel free to bring it to my attention,
    but I won't be holding my breath.)

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, Apr 9, 2010
    #1
    1. Advertising

  2. Seebs

    Uno Guest

    Seebs wrote:
    > Based on feedback from people here, I've concluded that it was possible
    > that the earlier edition of C: The Complete Nonsense did not provide the
    > reader with a fair, accurate, and reasonably comprehensive picture of
    > the quality of Herbert Schildt's book, "C: The Complete Reference".
    >
    > Having put a few hours of work into reviewing the current edition, I have
    > created a new page which analyzes it in some detail. I have concluded that
    > the previous document significantly understated the abundance and depth of
    > misunderstandings and errors in Schildt's book. Even the 4th edition, in
    > which several errors pointed out in my previous page have been corrected,
    > continues to astound me with the sheer depth of its errors.
    >
    > Perhaps more importantly, I had not previously noticed, or remarked on,
    > the great volume of things which were simply not covered by Schildt, which
    > should have been in any book purporting to teach C or to serve as a reference
    > for it. In fact, the errors of omission are in some cases more serious.
    >
    > Anyway, here we have it:
    >
    > http://www.seebs.net/c/c_tcn4e.html
    >
    > Special thanks to a number of reviewers and commenters, especially Keith
    > Thompson and der Mouse, both of whom caught me out in a number of humorous
    > errors. (For what it's worth, I believe that one or two cases were ones where
    > I had mistakenly identified some of Schildt's writing as being in error, and
    > a dozen or more were cases where I had failed to spot all of the errors.)
    >
    > As always, comments, corrections, and feedback are welcome. (Disclaimer:
    > By standing policy, I will delete any private contacts from Nilges unread.
    > I also won't actually read his posts, except for amusement value. If someone
    > thinks he's spotted a genuine error, feel free to bring it to my attention,
    > but I won't be holding my breath.)


    I guess I heard that from Heathfield years ago. Is anyone buying or
    publishing this book still?
    --
    Uno
     
    Uno, Apr 9, 2010
    #2
    1. Advertising

  3. Seebs

    James Harris Guest

    On 9 Apr, 01:15, Seebs <> wrote:
    ....
    >        http://www.seebs.net/c/c_tcn4e.html

    ....
    > As always, comments, corrections, and feedback are welcome.


    I can only really provide positive feedback. The examples are clear
    and the page is very easy to read. I almost laughed out loud when I
    read the acknowledgements.

    A clickable table of contents would be helpful, something like

    http://codewiki.wikispaces.com/bit_count_fast.c

    I read your page as a block of text but some navigation aids or visual
    clues to delimit sections and subsections would be useful for looking
    back. The current header sizes are a clue but only a small one.

    James
     
    James Harris, Apr 9, 2010
    #3
  4. On 9 Apr, 01:15, Seebs <> wrote:
    > Based on feedback from people here, I've concluded that it was possible
    > that the earlier edition of C: The Complete Nonsense did not provide the
    > reader with a fair, accurate, and reasonably comprehensive picture of
    > the quality of Herbert Schildt's book, "C: The Complete Reference".
    >

    You seem to have addressed most of my criticisms in the new version.
    I'll have to actually get a copy of Schildt if I'm to comment much
    more on this.

    One new criticism I'd make is that the original was about the right
    length for a review, this is over-long for that purpose. You might
    like to think or rewriting the inital section so it can stand alone.
     
    Malcolm McLean, Apr 9, 2010
    #4
  5. Seebs

    Zarquon Guest

    Seebs wrote:
    [snip]
    > Having put a few hours of work into reviewing the current edition, I have
    > created a new page which analyzes it in some detail. I have concluded that
    > the previous document significantly understated the abundance and depth of
    > misunderstandings and errors in Schildt's book. Even the 4th edition, in
    > which several errors pointed out in my previous page have been corrected,
    > continues to astound me with the sheer depth of its errors.
    >
    > Perhaps more importantly, I had not previously noticed, or remarked on,
    > the great volume of things which were simply not covered by Schildt, which
    > should have been in any book purporting to teach C or to serve as a reference
    > for it. In fact, the errors of omission are in some cases more serious.
    >
    > Anyway, here we have it:
    >
    > http://www.seebs.net/c/c_tcn4e.html
    >

    [snip]

    Puzzlingly, this page appears to claim to be a year old, and this post
    appears to claim that the page is new. What happened?

    --
    Thinkers travel in cognito.
     
    Zarquon, Apr 9, 2010
    #5
  6. James Harris <> writes:
    > On 9 Apr, 01:15, Seebs <> wrote:
    > ...
    >>        http://www.seebs.net/c/c_tcn4e.html

    > ...
    >> As always, comments, corrections, and feedback are welcome.

    [...]
    > A clickable table of contents would be helpful, something like
    >
    > http://codewiki.wikispaces.com/bit_count_fast.c
    >
    > I read your page as a block of text but some navigation aids or visual
    > clues to delimit sections and subsections would be useful for looking
    > back. The current header sizes are a clue but only a small one.


    It does have a clickable table of contents; scroll down about a page
    from the top to the "Contents:" section.

    --
    Keith Thompson (The_Other_Keith) <http://www.ghoti.net/~kst>
    Nokia
    "We must do something. This is something. Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"
     
    Keith Thompson, Apr 9, 2010
    #6
  7. Seebs

    Seebs Guest

    On 2010-04-09, Malcolm McLean <> wrote:
    > On 9 Apr, 01:15, Seebs <> wrote:
    >> Based on feedback from people here, I've concluded that it was possible
    >> that the earlier edition of C: The Complete Nonsense did not provide the
    >> reader with a fair, accurate, and reasonably comprehensive picture of
    >> the quality of Herbert Schildt's book, "C: The Complete Reference".


    > You seem to have addressed most of my criticisms in the new version.
    > I'll have to actually get a copy of Schildt if I'm to comment much
    > more on this.


    > One new criticism I'd make is that the original was about the right
    > length for a review, this is over-long for that purpose. You might
    > like to think or rewriting the inital section so it can stand alone.


    I don't really intend it as a review, so much as a meta-reference; something
    people can go to when asking the question "why do people claim that Schildt
    doesn't understand C". (Answer: Because he clearly could not figure out how
    to address the order-of-evaluation, or EOF, criticisms.)

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, Apr 9, 2010
    #7
  8. Seebs

    Seebs Guest

    On 2010-04-09, Zarquon <> wrote:
    > Puzzlingly, this page appears to claim to be a year old, and this post
    > appears to claim that the page is new. What happened?


    .... I got the year wrong.

    As I said, I absolutely DO NOT claim to not be prone to trivial and
    obvious mistakes. :)

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, Apr 9, 2010
    #8
  9. Seebs

    Seebs Guest

    On 2010-04-09, Richard Harter <> wrote:
    > If you don't mind, I will review your review.


    I am not sure that this document is a "review".

    > "The Structure of Scientific Revolutions, 3rd edition, Thomas S.
    > Kuhn, 1996, paperback, University of Chicago Press, ISBN
    > 0-226-45088-3"


    > There are key pieces of information here, the book title, the
    > author, the edition, the date of publication, the publisher, and
    > the identifier. Carefully identifying the work you are reviewing
    > is rather like getting the prototype for main correct.


    And if this were a "book review", I would definitely have done something
    like that. I suppose I could do it anyway, but this is not a review.

    > The entire "objections" section could be profitably omitted. The
    > function of reviews is to critique the work being reviewed.
    > Polemics and self justifications are not to the point.


    Again, this is not a review; it's a position paper on the question of whether
    Schildt's writing is garbage.

    > Similarly
    > we do not need to know details of your personal life, e.g., that
    > you are autistic. Let your review stand on its own feet; do not
    > prop it up with crutches. Similarly the entire section "Herbert
    > Schildt and C: The Complete Nonsense" could profitably be
    > replaced by a single paragraph, a single sentence, or even
    > deleted entirely.


    I disagree. Again, if this were a review, and a review of a single book,
    that section would be irrelevant. But it's not. This is a discussion of
    the question of whether C:TCR illustrates a complete failure on Schildt's
    part to understand some basic components of C.

    For that, it is important that the reader see that, confronted with reports
    of blatant errors, Schildt could remove the offending material, but could
    not correct it. Similarly, it's very instructive to note that, while Schildt
    removed the offending sentence from the description of getchar(), he neither
    removed the same sentence from the description of getc(), nor updated the
    example to be correct.

    > What is wanted in this kind of review is an overview of the book,
    > its structure, its virtues such as they are, the kinds of errors
    > made, and its target audience.


    I was unable to find any virtues, and the structure of the book was
    uninteresting to me.

    > Are there entire topics where the treatment is fundamentally
    > mistaken, or are the errors mostly at a low level. This is an
    > important issue. Low level errors are readily corrected;
    > fundamental misunderstandings are more serious.


    As pointed out, there does not seem to be a single reference, anywhere,
    to structure padding.

    > From your text I
    > gather that most of the errors are:


    > (a) The use of DOS centric forms rather than the more general and
    > more portable forms specified by the standard.


    These seem to be much reduced in the 4th edition.

    > (b) Simple slop - typos and other small errors that should have
    > been caught in editing.


    It's hard to tell typos from misunderstandings. Is "=+" a typo, or
    a conceptual error? I have no idea. His writing is not consistently
    good enough for me to be sure he didn't intend it.

    > (c) Misuderstandings of basic utilities, e.g., feof.


    That, I think, rises to the level of a "fundamental misunderstanding".
    He doesn't show any comprehension of how conversions (such as character
    to unsigned char to int) work.

    > (d) Code examples at does not work or even compile.


    Most of them look like they'd compile now, most of the time.

    > (e) Code examples that have undefined behaviour.


    Yes.

    > (f) Incorrect explanations of correct code.


    Yes.

    > (g) Bad style. By this I mean the failure in code to check for
    > errors and handling them.


    I'm fairly content to let someone skip error checking in a book,
    at least some of the time. What bothers me is stuff like gets().

    > It would have been better if your review that there is little
    > discussion of subjects such as undefined behaviour and
    > implementation defined behaviour.


    Ahh, but I haven't checked it out to see whether those topics might
    be covered somewhere. I probably should at some point, but that wasn't
    the primary topic of interest to me.

    I just wanted to see whether the book was still littered with errors. It
    is.

    > Similarly, is there any discussion of the variety of
    > implementation environments. At the time of the 4th edition
    > there were numerous unix and unix clone environments, DOS and NT,
    > DEC VMS and even a MVS implementation. Beyond that the hosted
    > implementations there are free standing environments. What about
    > this profusion of possible environments does the book say, if
    > anything?


    Nothing significant that I spotted. This could arguably be justified
    by claiming that, since the examples are portable, such details are
    irrelevant.

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, Apr 9, 2010
    #9
  10. Seebs

    James Harris Guest

    On 9 Apr, 16:40, Keith Thompson <> wrote:
    > James Harris <> writes:
    > > On 9 Apr, 01:15, Seebs <> wrote:
    > > ...
    > >>        http://www.seebs.net/c/c_tcn4e.html

    > > ...
    > >> As always, comments, corrections, and feedback are welcome.

    > [...]
    > > A clickable table of contents would be helpful, something like

    >
    > >  http://codewiki.wikispaces.com/bit_count_fast.c

    >
    > > I read your page as a block of text but some navigation aids or visual
    > > clues to delimit sections and subsections would be useful for looking
    > > back. The current header sizes are a clue but only a small one.

    >
    > It does have a clickable table of contents; scroll down about a page
    > from the top to the "Contents:" section.


    My bad. I was thinking about something more detailed - for example,
    under the Pick-a-Page section clickable links to the page numbers; and
    under the Higher-Level Problems heading a clickable entry for each
    problem. My only complaint is that with no indentation the document is
    a bit monolithic.

    James
     
    James Harris, Apr 9, 2010
    #10
  11. Seebs

    Seebs Guest

    On 2010-04-09, James Harris <> wrote:
    > My bad. I was thinking about something more detailed - for example,
    > under the Pick-a-Page section clickable links to the page numbers; and
    > under the Higher-Level Problems heading a clickable entry for each
    > problem. My only complaint is that with no indentation the document is
    > a bit monolithic.


    This is not entirely a bad idea. I might do some indenting at some
    point.

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, Apr 9, 2010
    #11
  12. Seebs

    spinoza1111 Guest

    On Apr 10, 2:06 am, Seebs <> wrote:
    > On 2010-04-09, Richard Harter <> wrote:
    >
    > > If you don't mind, I will review your review.

    >
    > I am not sure that this document is a "review".
    >
    > > "The Structure of Scientific Revolutions, 3rd edition, Thomas S.
    > > Kuhn, 1996, paperback, University of Chicago Press, ISBN
    > > 0-226-45088-3"
    > > There are key pieces of information here, the book title, the
    > > author, the edition, the date of publication, the publisher, and
    > > the identifier.  Carefully identifying the work you are reviewing
    > > is rather like getting the prototype for main correct.

    >
    > And if this were a "book review", I would definitely have done something
    > like that.  I suppose I could do it anyway, but this is not a review.


    What is it? Oh, I know: a childish attempt to demonstrate that you
    were a qualified programmer by damaging another man's reputation. You
    did this instead of taking any computer science classes at university.
    >
    > > The entire "objections" section could be profitably omitted.  The
    > > function of reviews is to critique the work being reviewed.
    > > Polemics and self justifications are not to the point.

    >
    > Again, this is not a review; it's a position paper on the question of whether
    > Schildt's writing is garbage.
    >

    Note how the pomposity of "position paper" clashes with the
    prejudgement. News flash: "whether your writing (and the work of
    McGraw Hill editors) is garbage" is biased from the start.

    > > Similarly
    > > we do not need to know details of your personal life, e.g., that
    > > you are autistic.  Let your review stand on its own feet; do not
    > > prop it up with crutches.  Similarly the entire section "Herbert
    > > Schildt and C: The Complete Nonsense" could profitably be
    > > replaced by a single paragraph, a single sentence, or even
    > > deleted entirely.  

    >
    > I disagree.  Again, if this were a review, and a review of a single book,
    > that section would be irrelevant.  But it's not.  This is a discussion of
    > the question of whether C:TCR illustrates a complete failure on Schildt's
    > part to understand some basic components of C.


    You're not qualified and you have no standing:

    (1) You have no Microsoft experience
    (2) Schildt's got MSCS and BS in computer science. You have by your
    own admission a BA in psychology and ADD.

    This is borne out by the fact that your examples are jejune

    >
    > For that, it is important that the reader see that, confronted with reports
    > of blatant errors, Schildt could remove the offending material, but could
    > not correct it.  Similarly, it's very instructive to note that, while Schildt
    > removed the offending sentence from the description of getchar(), he neither
    > removed the same sentence from the description of getc(), nor updated the
    > example to be correct.


    You refused McGraw Hill's offer that you be a tech reviewer out of
    laziness and greed. You have never done a thorough technical review,
    therefore any one "error" that you have identified may not be an
    "error".


    >
    > > What is wanted in this kind of review is an overview of the book,
    > > its structure, its virtues such as they are, the kinds of errors
    > > made, and its target audience.  

    >
    > I was unable to find any virtues, and the structure of the book was
    > uninteresting to me.


    You're quite free with charges of "narcissistic personality disorder",
    and I have complained to Paul Manning of Springer (your publisher)
    about this in attempt to settle outside of a court of law, which is
    where you're headed. However, you betray narcissism. If "the structure
    of the book was uninteresting to you" and you have not thoroughly
    reviewed any edition at any time, you had no business damaging
    Schildt's reputation.


    >
    > > Are there entire topics where the treatment is fundamentally
    > > mistaken, or are the errors mostly at a low level.  This is an
    > > important issue.  Low level errors are readily corrected;
    > > fundamental misunderstandings are more serious.

    >
    > As pointed out, there does not seem to be a single reference, anywhere,
    > to structure padding.


    This is probably because we don't choose as competent programmers to
    write "vanity code" that is dependent on structure padding. You on the
    other hand have a track record, in your queue.c fallthrough, of
    writing vanity code.


    >
    > > From your text I
    > > gather that most of the errors are:
    > > (a) The use of DOS centric forms rather than the more general and
    > > more portable forms specified by the standard.

    >
    > These seem to be much reduced in the 4th edition.
    >
    > > (b) Simple slop - typos and other small errors that should have
    > > been caught in editing.

    >
    > It's hard to tell typos from misunderstandings.  Is "=+" a typo, or
    > a conceptual error?  I have no idea.  His writing is not consistently
    > good enough for me to be sure he didn't intend it.
    >

    I thought it was great! You say it is clear.
    This is incomprehensible and this is queer.
    You throw shit on the wall like an ape in the zoo
    I suggest you desist before we all sue you.

    > > (c) Misuderstandings of basic utilities, e.g., feof.

    >
    > That, I think, rises to the level of a "fundamental misunderstanding".
    > He doesn't show any comprehension of how conversions (such as character
    > to unsigned char to int) work.


    To be precise, his understanding is not your business, since you don't
    have the academic preparation to speak on this manner, nor the
    practical programming experience: your current position seems to be
    trivial bug finding by your own admission.


    >
    > > (d) Code examples at does not work or even compile.

    >
    > Most of them look like they'd compile now, most of the time.
    >
    > > (e) Code examples that have undefined behaviour.

    >
    > Yes.
    >
    > > (f) Incorrect explanations of correct code.

    >
    > Yes.
    >
    > > (g) Bad style.  By this I mean the failure in code to check for
    > > errors and handling them.

    >
    > I'm fairly content to let someone skip error checking in a book,
    > at least some of the time.  What bothers me is stuff like gets().
    >
    > > It would have been better if your review that there is little
    > > discussion of subjects such as undefined behaviour and
    > > implementation defined behaviour.

    >
    > Ahh, but I haven't checked it out to see whether those topics might
    > be covered somewhere.  I probably should at some point, but that wasn't
    > the primary topic of interest to me.


    So: you haven't read the books you have "reviewed"
    Shame on you.

    Tea Bagger moron.


    >
    > I just wanted to see whether the book was still littered with errors.  It
    > is.


    Godwin convergence time. You're nothing more than a cheap Nazi thug at
    a book burning who hasn't read the books he burns but roots through
    them like an ape for juicy bits.

    >
    > > Similarly, is there any discussion of the variety of
    > > implementation environments.  At the time of the 4th edition
    > > there were numerous unix and unix clone environments, DOS and NT,
    > > DEC VMS and even a MVS implementation.  Beyond that the hosted
    > > implementations there are free standing environments.  What about
    > > this profusion of possible environments does the book say, if
    > > anything?

    >
    > Nothing significant that I spotted.  This could arguably be justified
    > by claiming that, since the examples are portable, such details are
    > irrelevant.
    >
    > -s
    > --
    > Copyright 2010, all wrongs reversed.  Peter Seebach / ://www.seebs.net/log/<-- lawsuits, religion, and funny pictureshttp://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    spinoza1111, May 27, 2010
    #12
  13. Seebs

    Seebs Guest

    On 2010-05-27, Gordon Burditt <> wrote:
    >>It's hard to tell typos from misunderstandings. Is "=+" a typo, or
    >>a conceptual error? I have no idea. His writing is not consistently
    >>good enough for me to be sure he didn't intend it.


    > I vote for it being archaic code, and he may have intended it not
    > realizing it was archaic code, although I haven't seen the particular
    > spot in his books where he used that.


    It's in an example somewhere, but I don't think "archaic" code is
    plausible -- this book was started LONG after...

    > You are aware, aren't you, that the original C assignment operators
    > included =+, =-, =*, and =/, and *DID NOT* include +=, -=, *=, and
    > /= ?


    Yes.

    But that's a decade or two early to be the basis for something in a
    book released in the mid to late 90s.

    > When did Schildt write the book containing that? Using =+ in a
    > book written about 1989-1990 when it was obsoleted in 1978 doesn't
    > say much for his book being up to date. But an old DOS C compiler
    > might have accepted it quietly if he compiled the code before
    > publishing it.


    I am quite sure code was not in *general* compiled before publication,
    because the 2nd edition used <> as an inequality operator, and there are
    missing semicolons and the like in later editions.

    -s
    --
    Copyright 2010, all wrongs reversed. Peter Seebach /
    http://www.seebs.net/log/ <-- lawsuits, religion, and funny pictures
    http://en.wikipedia.org/wiki/Fair_Game_(Scientology) <-- get educated!
     
    Seebs, May 27, 2010
    #13
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Mike Tyndall

    Giant C++ resources list, 4th edition

    Mike Tyndall, Oct 5, 2004, in forum: C++
    Replies:
    0
    Views:
    890
    Mike Tyndall
    Oct 5, 2004
  2. spinoza1111

    C: The Complete Meta-Nonsense

    spinoza1111, Nov 1, 2009, in forum: C Programming
    Replies:
    142
    Views:
    2,545
    Kenny McCormack
    Nov 21, 2009
  3. spinoza1111

    What IS going on in "C: the Complete Nonsense"?

    spinoza1111, Jan 2, 2010, in forum: C Programming
    Replies:
    0
    Views:
    315
    spinoza1111
    Jan 2, 2010
  4. Malcolm McLean

    C the complete nonsense

    Malcolm McLean, Apr 4, 2010, in forum: C Programming
    Replies:
    389
    Views:
    5,512
    spinoza1111
    Apr 17, 2010
  5. Seebs
    Replies:
    18
    Views:
    528
    Kenny McCormack
    Nov 15, 2010
Loading...

Share This Page