The preface indicates that this book is “a single-volume PC user’s reference-oriented handbook devoted specifically to desktop computer software systems and application technologies, high-level programming language compilers and interpreters, the history of programming languages, programming language types and families, and specific software command languages and their instruction sets.” Not only is the PC orientation of the book not mentioned in the title, but the title provides no hint of the wide variety of topics to be covered. Despite the 755 pages in this paperback, I was immediately skeptical about the authors’ ability to treat all of these topics adequately.
In addition to a misleading title and a very extensive set of objectives, the book covers even more than is outlined in the preface. It not only covers high-level programming languages but provides a section on special applications software, which is an overview of such packages as integrated software, desktop publishing, games, artificial intelligence, and expert systems. It also contains a section on the principles of effective programming and a section on software command languages (itself a misnomer), which includes discussions of Paradox, dBase II (]), VisiCalc, SuperCalc, MultiPlan, Lotus, Symphony, Framework, and HyperCard.
One cannot fault a book for containing more than its title and preface promise, but in this case more is actually less. In all, the book is a hodgepodge of material on assorted topics written by different people, each with different writing abilities and levels of expertise in their respective subject areas.
“Principles of Programming Languages,” the shortest section of the book, mentions the need for validation, defensive programming, documentation, and error trapping, but does not even consider the principles so commonly associated with high-level languages today: structured, modular, and top-down programming.
The high-level languages discussed include many of the more popular languages for micros, but there is no consistency of style or content for each. Most discussions focus on syntax, with some being fairly comprehensive and others being very condensed. Not much depth can be included in 10–20 pages on a programming language, particularly those as complex as Ada or C.
Eight versions of BASIC are covered, but not BASICA, QuickBASIC, True Basic, Turbo Basic, or even standard Basic.
The software command languages selected seemed entirely arbitrary. To include dBase II says something about the dated nature of this work. It is difficult to believe that a book designed to be a reference work and published in 1989 could contain such obsolete references. In addition, numerous errors occur throughout the book (for example, COBOL is said to be an acronym for Computer Business Oriented Language, not Common Business Oriented Language (p. 333)). Errors of this type may be minor, but a book that is to serve as a reference work should be relatively accurate.
In short, I cannot think of any group of professional computer users who would find this book particularly useful. Those relatively inexperienced programmers who would like a glimpse at what a FORTH program looks like or how Pascal is structured might be able to learn a bit from this work. There are, however, far more up-to-date, accurate, and well-written books that could serve that purpose better.