[This article contains a review of a review about "C Unleashed". I must of
course register an interest, since I was the lead author on that book, so
you should read this article with that in mind. Nevertheless, I haven't
actually received any income from sales of the book for some years, and I
doubt very much whether that situation will change, no matter what I write
here. Consequently, I think that the time is right to answer the review in
detail, which I can't recall doing before.
Is this article a defence of the book? Yes, it is, although I am being as
objective as I can be. But is this article an attempt to protect or extend
a revenue stream? No, it isn't. I'm too pragmatic to fool myself that
anything I say here will have any effect on my income from the book. In
any case, caveat lector.]
Tor Rustad said:
santosh wrote:
[...]
Here are some resources:
Books:
======
1. The C Programming Language Second Edition by Kernighan and Ritchie
2. C: A Reference Manual by Harbison and Steele
3. C Unleashed by Heathfield, Kirby et al.
4. Expert C Programming by Peter Van der Linden
This is a FAQ, see Q 18.10.
[3] Received only a "recommended with reservations" by ACCU.
http://accu.org/index.php/book_reviews?url=view.xqy?review=c002280&term=advanced+c
Very true. Francis has never forgiven the authors for writing a book about
C instead of C++.
Seriously, the reservations he had were/are:
1) only one short chapter on C99.
This is of course quite true. The chapter in question was written by Peter
Seebach, who was a member of ISO at the time the book was published (and
still is, for all I know). In 1999, the C community (or at least that part
of it that is voluble on Usenet) was quite optimistic about C99, and so it
is not unreasonable to complain that C99 was under-represented in CU.
Eight years on, I can't help wondering whether C99 is actually given a bit
too much space, given that implementors have all but ignored it.
2) "many of the topics covered in this book are no longer the natural
domain of C".
Perhaps. But my own view is rather different. I think of programming
languages as representing ways of thinking about programming, and we have
different languages because we think in different ways. To someone for
whom C fits his or her mindset very well, the topics covered in the book
/are/ the natural domain of C. To those for whom other languages fit their
mindset better, obviously they will see those other languages as being
more suitable. Horses for courses.
3) "some of the co-authors seem to have a limited perspective. The chapter
on dealing with dates is a case in point."
An innate sense of diplomacy prevents me from commenting openly about this
point.
4) "The level of assumed reader expertise varies wildly from chapter to
chapter."
Yes, it does! In my own chapters, I took the view that the reader
understood the basic syntax of the language, and was sufficiently familiar
with C to be able to do things like split a program into multiple source
files, but had probably learned C the way many of us did - either ad hoc,
or from a programming teacher who had not bothered to learn the language
properly him- or herself. That was why I spent a little time attempting to
correct some common misconceptions.
5) "ISO C (and I do wish the authors would remember that that is what we
should call it.)"
Yes, it does kind of read as if we tossed a coin every time we mentioned
the standards body: "heads, ANSI; tails, ISO". Oops. (We didn't *actually*
do that, I promise! It just wasn't one of the things we considered
important enough to sort out in advance.)
Those were pretty much the only negative comments about the book. The rest
of the review was reasonably positive.
and [2] and [4] are not for beginners.
Neither is [3]!