While large, this book does not waste space. It covers pretty much everything PalmOS, starting with an overview of the system architecture, moving on to the basics of development such as forms, menus, resources, the event loop, the core API, database access, and common conventions, and then touching upon advanced topics such as beaming, synchronization, conduits, networking, Palm.Net-style wireless connectivity, and color extensions.
What this book most emphatically does NOT do is teach the C programming language. Substantial competence in C programming is simply assumed, and some experience in another event-driven programming environment (such as Microsoft Windows or IBM OS/2 Presentation Manager) would be undeniably helpful. The ideal reader for this book would be a Windows programmer used to C and C++ who is looking to do work on Palm OS, but who has no knowledge of PalmOS beyond operating the date book, address book, and memo pad.
What especially distinguishes and recommends this book is that it seems to be the only one which takes seriously the freeware tools for PalmOS development, the PRC-Tools for GNU C and the PilRC resource compiler. Probably 95% of real development uses the freeware tools, for obvious reasons, and their quality is regarded as so high that they are officially supported by Palm Computing. And, while PilRC is an excellent quality product in itself, there is no getting around the fact that its documentation could be greatly improved, so this book fills a crying need.
The CD which comes with the book is probably no more useless than the usual CD which comes with a book like this. I doubt there is anything on it which could not simply be downloaded from the Internet, but the inclusion of PRC-Tools, an 8MB compressed installer for the Windows version, makes it somewhat worthwhile. Of the 88MB on the CD, a great deal of it is taken up by rather unexciting things such as Unix and Windows distributions of Adobe Acrobat PDF Reader (15MB combined), a trial copy of WinZip (1.3MB), SDKs for truly obscure pieces of hardware such as SPT bar code scanners (19MB), the TRGpro (1.5MB), the Qualcomm/Kyocera pdQ cellular telephone (0.5MB), and so on. Much of the rest of what is on the disk consists of easily downloaded time-limited or crippled evaluation versions of PalmOS development tools or aids. Unforgiveable, however, is the apparent omission (contrary to the text of the book) of the PilRC freeware resource compiler; fortunately, this is easy to download from the Internet and quite small (about 0.3MB). The inclusion of the freeware POSE emulator would also have been a good idea, but it is missing also.
Much of the back of the book is devoted to references to the PalmOS API and other information to which a programmer would repeatedly refer, and this is valuable because, as far as I know, Palm distributes this information only in PDF electronic form. Some people like PDF and other people hate it, but having it on hardcopy in book form makes it easier for me. Indeed, a significant amount of this book trods the same ground as some of the more important PDF documents from Palm, most notably the "Palm OS Companion" (2.5MB) and "Palm OS Reference" (8.3MB) -- both of which should have been on the companion CD but are not.
Overall, the wide scope of this book makes it the top choice for the experienced C or C++ developer who is starting at absolute square one with PalmOS. There are alternative languages discussed and a few evaluation versions of compilers and interpreters for other languages on the CD, but the fact is that nearly all serious PalmOS development is done in C/C++, the best tools are all available for C/C++, and the book assumes you are working in C/C++. Although the thoroughness and clarity of the writing would make this book useful even to someone working in a language other than C/C++, probably half of the book would be incomprehensible to a programmer unfamiliar with C/C++. If C/C++ implies "expert" or, even worse, "above my head" to you, then this book probably would be a mistake. On the other hand, if you know C/C++, and especially if you know it in the context of Windows programming, then this is by far the best book for you.