When computer professionals are considering what technical books they will use for learning and for reference, they have many options — in terms of subjects covered, individual titles, publishers, and media (paper or online). Paper-based books can certainly be grouped into various topical and functional categories; but one clear demarcation is that of size. The typically-sized technical monograph is usually well over 600 pages (in some cases over twice that amount), with heights and widths approaching that of magazines. These books, especially the well-written ones, can be a valuable wealth of information on all sorts of technical topics. They can be utilized for learning new languages, operating systems, database systems, and other technologies. Many of them can also serve as handy references, for quickly looking up those elusive but critical details. (In those cases, the utility of the volume is largely a function of the correctness and completeness of its index — an often-neglected part of many technical titles on the market today.)
While most technical books are of this standard size, there is a small yet tenacious minority of titles frequently referred to as "pocket" books. In almost all instances, these are reference volumes, because space limitations prevent the explanations and sample code needed for adequately teaching the reader a complete technology. Nonetheless, their diminutive size makes them more portable than their heftier cousins, and have the added benefit of encouraging authors and publishers to trim away all fluff, and present only the most valuable material in as compact a format as possible. O'Reilly & Associates appears to be the current leader in this niche market, presently offering an impressive 59 titles in their "Pocket Reference" series.
One of these books, entitled Oracle PL/SQL Language Pocket Reference, 2nd Edition, has been authored by Stephen Feuerstein, Bill Pribyl, and Chip Dawes. The second edition of their work, which covers Oracle9i, was published on 1 February 2003 under the ISBN 978-0596004729. It is a welcome update to the first edition, which appeared in April of 1999. This new edition runs 121 pages, and measures 7 inches in height, 4.25 inches in width, and a trim 0.375 inches in thickness. You know a publisher is serious about space efficiency when they begin the first section of a book halfway down on the same page containing the authors' acknowledgments and the book's conventions.
Despite its slender dimensions, this book possesses what appears to be a complete index — a feature sadly missing from some of the other O'Reilly pocket titles. One could argue that an index is unneeded for such a small volume. But this objection would probably be dropped without hesitation after the first instance of flipping through one of these books in search of a particular keyword. The table of contents at the beginning of each one of these pocket books is no substitute for an index.
The book under review is neatly organized into 16 sections:
- PL/SQL Language Fundamentals
- Variables and Program Data
- Conditional and Sequential Control
- Database Interaction
- Cursors in PL/SQL
- Exception Handling
- Records in PL/SQL
- Named Program Units
- Calling PL/SQL Functions in SQL
- Oracle's Object-Oriented Features
- External Procedures
- Java Language Integration
The book concludes with a useful list of PL/SQL reserved words, followed by the book's index. Some readers may criticize this volume for perhaps leaving out a particular topic in PL/SQL, or in not providing enough discussion or sample code on a given topic. However, they would miss the point of a pocket reference, which is to provide enough details on the most critical topics, with brief and illustrative examples, but without turning the book into a full-sized tome. Complete coverage is what the regular-sized books are for.
During the same month that this title was published, a review of three other O'Reilly Pocket Reference books appeared on the Builder.com website. The author of that review criticized those three pocket books as being misleadingly described, because they are too large to fit into the pockets of any of his clothing, and should not be considered portable because he does not know of any programmers who carry reference books on themselves. That author should be more careful in his analysis, for several reasons: The term "Pocket Reference" is obviously not intended to imply that any of the books will fit into the pockets of a particular person's clothing. Rather, it is meant to convey that the books are small, intended for portability. Also, the fact that most programmers do not carry reference books around, does not imply that those books are not portable. I for one will usually carry with me a small grammar book, which is about the same size as an O'Reilly pocket reference book, and thus fits easily into the cargo pockets of my pants. A trim volume such as that is most appreciated when standing in a long and slow-moving line. My Perl pocket reference from O'Reilly has served the same purpose on many occasions.
The author of that review also slighted those three Pocket Reference books as being so small that they get lost amidst the clutter on his desk. But the problem clearly lies not with the size of the books, but with the clutter on his desk. Moreover, if the books were made larger so as to be more easily located on his disorderly desk, then he would no doubt be complaining even more that the books are too large to fit in his pockets. Lastly, he criticized the C# Language pocket reference as being useless, because it was not large enough to contain information he needed for solving programming and logic problems, but instead only held syntax information, which was already provided online by his Visual Studio .NET development environment. However, the admittedly useful inclusion of syntax help in an IDE (integrated development environment) does not negate the value of that syntax information in a pocket reference book, particularly for developers — and technologies — that have no such IDE's. In addition, I have been in numerous situations in which I was away from a computer, but still intended to write source code on paper. In those instances, a pocket reference book would have been most useful.
To be fair, the aforesaid reviewer does make a good point that one gets more bang for the buck with a regular O'Reilly reference or Nutshell book. This is true, because the O'Reilly Pocket Reference books are currently priced at $12.95, which seems rather steep given their small size and few number of pages. For less than five times that price, one could purchase a Nutshell book containing far more than five times the number of (larger) pages. On the other hand, if one gets a great deal of use out of a particular pocket reference book, then it was probably well worth the money spent. Also, the reviewer (perhaps unintentionally) implies that one could get a non-pocket book for the same money; but that is clearly not the case.
Like all tools, the value of a particular pocket book to an individual will vary widely, depending upon how many needed details can be pulled from memory or gleaned from the other code at hand, and how quickly the individual can find the information in much larger books (which are probably not close by) or from technical newsgroups and websites. For those PL/SQL programmers in need of a quick reference guide, this offering from O'Reilly is probably their best option. The table of contents, index, excerpt, and errata for the book can be found at the O'Reilly website.