The latest version of CA-Clipper, a compiler for dBASE files, follows the recent trend in CA (Computer Associates) products in using object-oriented techniques with extensive automatic programming.
This large book gives a complete account of the graphical programming interface and its use. It also contains valuable hints on the best way to organize work to make an efficient product. There are 29 chapters and two appendices. The more interesting and important topics covered are the preprocessor, using objects, designing database files, networking, pop-up programming, low-level file access, and the GET object class.
A particularly good chapter is chapter 10, on program design. Here the authors examine the concept of a user input screen, where data such as name and address have to be entered. They point out that the simplest implementation--to re-enter the screen each time it is needed--is inefficient both in disk and in RAM space. The reader is then taken through a series of revised versions that show how much improvement can be produced by attention to detail. The reader who is familiar with C or C++ will have no difficulty with this, or with other examples in the text.
Another valuable analysis is contained in the following chapter. Here the “Art of the User Interface” is examined. Quite apart from the usual considerations of spatial layout, the authors describe particular situations and then give anecdotal examples of the ways in which failure can occur. Any seasoned programmer will have encountered the sequence “Save file?” from which a “yes” response evokes “Are you sure?” The frequent user tends to make automatic responses that often lead to the loss of data. This and many other situations are examined in detail.
Each chapter contains numerous examples of programs, which are reproduced on an accompanying floppy disc. Chapters end with a summary that enables would-be users to see exactly what the chapter seeks to teach, but there are no references. The index is comprehensive.
The book is probably too large for use as an individual class text but is certainly valuable as a reference.