55 of 57 people found the following review helpful
Best book of its kind,
This review is from: The Practice of Programming (Addison-Wesley Professional Computing Series) (Paperback)
I've long recommended Pike's "Notes on Programming in C" on my web page. This book includes most of the content from that essay and much more, but is still thin and concise.
What I like most about this book is that they justify all of their recommendations, show both good and bad examples, and keep the discussion grounded in actual code (rather than abstract principles).
Other things I liked:
- begins with a discussion of programming style and aesthetics
- they critique some of the designs that they have been involved in, such as C's stdio and string handling libraries
- they discuss the unique design issues presented by library design
- they give examples in C, C++ and Java, and give an honest appraisal of the tradeoffs involved in each language.
- FINALLY, excellent single chapter descriptions of systematic approaches to debugging and testing!
- they face up to some of the tough design choices that must be made outside the UNIX Ivory Tower (rare for these authors). For example, they sacrifice UNIX consistency in one application so that the application will behave consistently across UNIX and Windows.
- still skirts around tough design issues in error recovery and reporting; they advocate the "print a diagnostic and exit" approach (which is totally inappropriate for library code), and don't discuss the tradeoffs
- a few of the principles they cover will be trivial or obvious for experienced programmers