Note: it is from Herbert Schildt. This name should ring a bell for many competent C or C++ programmers, as the technical quality and accuracy of his books are frequently disputed, and for many regarded as synonymous of bad quality.
disclaimer, i haven't read the book. but if teaching cpp while he was really teaching C was his crime, than i will probably be on his side when i do read the book :)
That's considerably less in-depth than the criticism itself. The post you linked is mainly complaining about how mean some people were to Schildt and brushes aside the criticism on the basis that Schildt had good intentions. You'll notice that he tries to link the widespread criticism of Schildt's books (I mean, it's in the "learn C" newsgroup FAQ) with some anonymous trolls' death threats against blogger Kathy Sierra. It's basically the "LEAVE BRITNEY ALONE!" of the programming world.
I also think that post's phrasing has confused you. When he says "teaching C in practice," he doesn't mean teaching C-isms in a C++ book — he means C as it is (incorrectly) used in practice, such as teaching implementation-dependent assumptions and pretending that they're part of the standard, as well as simply wrong code that might appear to work right "in practice" in certain situations. For example, his "Annotated ANSI C Standard" stated that void main(void) was a valid main function and that padding only appears at the end of structs.
Schildt is warned against in the alt.comp.lang.learn.c-c++ faq[1], and there's an entry for "Herbert Schildt: Any Book on C or C++" in the big list of C Books and C++ Books You Don't Want[2].
So c-style arrays and strings (and the C string functions) are discussed in chapter 4, exceptions and templates are chapter 12 "advanced topics", and in the discussion of arrays you're encouraged to write your own array class if you need bounds checking.
I don't see mention of std::vector (which has .at() for bounds-checked access) or std::string , maybe I just missed it not reading very thoroughly.
I don't think I like this book, it seems to encourage some rather bad practices...
9 comments
[ 2.4 ms ] story [ 10.0 ms ] threadhttp://www.developerdotstar.com/community/node/781
disclaimer, i haven't read the book. but if teaching cpp while he was really teaching C was his crime, than i will probably be on his side when i do read the book :)
I also think that post's phrasing has confused you. When he says "teaching C in practice," he doesn't mean teaching C-isms in a C++ book — he means C as it is (incorrectly) used in practice, such as teaching implementation-dependent assumptions and pretending that they're part of the standard, as well as simply wrong code that might appear to work right "in practice" in certain situations. For example, his "Annotated ANSI C Standard" stated that void main(void) was a valid main function and that padding only appears at the end of structs.
Schildt is warned against in the alt.comp.lang.learn.c-c++ faq[1], and there's an entry for "Herbert Schildt: Any Book on C or C++" in the big list of C Books and C++ Books You Don't Want[2].
[1] http://ma.rtij.nl/acllc-c++.FAQ.html#q6.4
[2] http://www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+C++....
http://www.catb.org/jargon/html/B/bullschildt.html
I don't see mention of std::vector (which has .at() for bounds-checked access) or std::string , maybe I just missed it not reading very thoroughly.
I don't think I like this book, it seems to encourage some rather bad practices...
http://www.amazon.com/Effective-Specific-Improve-Programs-De...