Book Review: The Modern RPG IV Language, Fourth Edition

  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times
I have three of the four editions of this book and wouldn't part with any of them. When the fourth edition of Bob's book was announced, I was eager to obtain one. One reason was that my third edition was getting a little raggedy from use, but mostly I wanted to see what Bob was going to say about the "new" subject areas that have impacted RPG since 2003, when the third edition came out. We all know that Bob was reluctant at first about the free-format style, even though he had explained it well, with examples, in his third edition of this book. Also, the RPG language now included new XML opcodes and built-in functions (BIFs), and these needed some of Bob's touch to help us understand them.

In this fourth edition, Bob has basically added to his previous edition. All the previous well-written examples and explanations are still there, but now there's more. In summary, the book now includes the new XML operations and BIFs, additional examples and text on free-format, and a chapter on Web programming interfaces using CGI APIs.

In chapter 2, I was glad to see a new section on integer (and unsigned integer) variables, their characteristics, comparisons to C and Java, and a great table with details. We in the RPG world tend to use what we've always used for numeric data: decimal! This section shows us a new perspective on a very old data type.

In chapter 4, Bob has added explanations and examples for the %subarr (get/put part of an array), %xml, and %handler BIFs, providing the usual detailed breakdown of the BIF parameters.

While discussing BIFs, I'd like to mention that many new examples have been added to the BIF chapter, and most of these new examples are shown in the free-format style. The %trim BIF upgrade to include a specified trim character is also described here.

In chapter 5 on opcodes, Bob updated the book for the CallP (Call with prototype) operation and provided an entirely new example. For the Update operation, Bob has included information on the %fields BIF option. However, the biggie in this chapter is the thorough discussion (with examples) of the Xml-Into operation and associated BIFs.

Chapter 12 on alternate syntax (free-format) was expanded in this edition, from 7 pages to 21 pages. This seemed a little short until I realized that Bob put dozens of free-format examples throughout the book (where they belong) and didn't just jam everything into here.

The last chapter of this book is new; it addresses the Web development world we now live in. Bob introduces us to CGI and the IBM APIs we can use to develop Web applications. The explanations and examples are classic Cozzi—well-written and easy to follow.

To be clear, this book isn't a training manual; it's a reference book. It's well-organized, with BIFs and opcodes in separate chapters in alphabetical order, and contains good examples.

You should consider this book to be an investment in your career. It belongs on the desk of every RPG programmer.