REVIEW - C Unleashed


Title:

C Unleashed

Author:

Richard Heathfield, Lawrence Kirby

ISBN:

Publisher:

Sams Publishing (2000)

Pages:

1344pp

Reviewer:

Francis Glassborow

Reviewed:

February 2001

Rating:

★★☆☆☆


For the right person this book is very good value for money

In 1999 WG14 (ISO) and J16 (ANSI) shipped a new C standard that refined the previous standard and added a whole bundle of facilities to support numerical work in C. This did not come out of the blue. The work had been going on for at least five years and the numerical work for the best part of a decade. Unfortunately most compiler vendors have been more focused on their C++ compilers and so there is, as of the time of writing, no C compiler readily available for the new release of the language. You may wonder what this has to do with this book. Well despite the publication date and the fact that books in this series are normally put together to fairly tight schedules, the only acknowledgement that C has moved on is a very short final chapter from Peter Seebach (who many of you may know as the moderator of comp.lang.c.moderated). The result is a book most of which could have beenwritten a decade ago, and had it been, this reviewer would have been highly complementary. But the World has moved on with the result that the potential readership of this book is greatly diminished.

The problem is that many of the topics covered in this book are no longer the natural domain of C. I suppose that the most extreme examples are the chapters on matrices. I would only use C for matrix work if given no other choice. High Performance Fortran, C++ with expression template technology, special Maths languages and even APL would come out ahead if I had a problem that involved large scale matrix work.

On the other side some of the co-authors seem to have a limited perspective. The chapter on dealing with dates is a case in point. Those of us familiar with the problem know that it is one of the most fearsomely difficult problems around. The C library facilities are flawed, and the standards committees backed off from replacing them because they were unsure that they could do the job right in the time available. They knew enough to know that getting it right is far from easy. Unfortunately the author of the chapter on this topic seems to focus on trivialising it. I suppose this is a consequence of having a multi-author book. The level of assumed reader expertise varies wildly from chapter to chapter.

Up until now I have been very negative about this book, but that is not entirely fair. If you are a determinedly C programmer, or there is some reason why you must use C regardless as to whether something else might be better for the problem, then this is a good book to have. If you want to study high quality C, or you want to become a master C programmer this would be an excellent book to add to your shelf. Between its covers you will find a multitude of well-considered and carefully honed examples of C. If we limit ourselves to a programming world dominated by the C enshrined in the 1990 version of ISO C (and I do wish the authors would remember that that is what we should call it.) then this is a first rate book. However, if you look outside that narrow community you would want to spend your time studying something else.

For the right person this book is very good value for money, it is just a little sad that that is a pretty restricted readership. Now if we could have a similar book based on the current C Standard published in the next couple of years, we might have something worth shouting about because it would be a book that those who are already expert C programmers could get something from.


Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.