Reviewed by Joe Pluta
If you've read anything written by Rafael Victória-Pereira, you know that no matter the subject, his writing has two fundamental attributes: it's informative and insightful. His new book, Evolve Your RPG Coding: Move from OPM to ILE ... and Beyond, delivers on both those levels, providing a wide array of concrete information while at the same time guiding you to an intuitive understanding of how to use all this new knowledge in your day-to-day programming efforts. This unique combination makes the book a must-have for anyone beginning the journey to ILE programming.
Technical books tend to focus on a single topic in minute detail. To that end, they become mini-reference manuals that sometimes miss the forest for the trees. Rafael has deliberately avoided that trap by making this book a three-part mini-series: the first part introduces ILE, the second describes how to use ILE, and the third explains how ILE fits into an overall modernization strategy. You don't get a rehash of every option on every compile command; instead you get a solid fundamental understanding of what ILE is and what it can do for you.
Coding Productivity Tips
That's not to say that you don't get solid technical information! The book is filled with tips, techniques, and snippets of code, many of which you've seen in his various online articles. It amazes me that I've been on the platform for over 30 years, and I still learn something new every time I read something Rafael writes. As a simple example, I never knew about the SET command in STRDBG. It's nothing earth-shattering, but it will make me a little more productive.
And that, in a nutshell, is what this book does: it makes you more productive. It does it in a way that no "quick reference" manual can because it provides you enough context to actually be able to use the information contained within. Rafael himself describes the book as a "slow reference" manual, and the term is apropos: you will learn the how as well as the why.
ILE, Free-Format, and Modernization
As I said, this book is like a mini-series. Another analogy might be a three-act play. In the first act, Rafael sets up the entire idea of ILE and why you want to use it. He does it by focusing on the most fundamental core concepts of ILE: the module and the procedure. These two concepts trip up a lot of programmers as they begin the transition to ILE, and Rafael provides an excellent definition.
Part 2 segues into the details of free-format RPG. While free-format RPG and ILE are highly related, there is a distinction, and the book smartly divides the two. This section may be the closest to a reference guide because the nature of the subject demands more technical detail, but as always the focus is on the practical and not on simply tables of keywords. What tables exist are brief and necessary. Chapter 9 is the best introduction to STRDBG (Start Debug) I've ever read, while the chapter on SQL is a concise, practical introduction to making SQL and ILE RPG work together.
In the finale, Rafael presents his own take on modernization while introducing the two primary parts of modernization: database and user interface. He does this with refreshing candor: he knows that there is no one right way to modernize your applications, and rather than position himself as some sort of oracle of architecture, Rafael simply provides his opinions on how best to begin the evolution of your old applications to a modern IT infrastructure.
That laidback take on best practices is a hallmark of this book. I've often read articles or manuals that tell you what you should do, but they either hit you with a rigid set of one-size-fits-all rules (which, as we all know, fit nobody), or else they give you such nebulous direction that you're not sure where to start; you find yourself wishing for at least some example. Rafael deftly straddles that line by giving you his recommendations with enough explanation that you can adapt them to your own shop. If you have your own standards, you'll be able to work with the concepts, but if you don't, he provides a great framework to get started.
If you're considering the move to ILE (and trust me, if you haven't already, you need to be considering it), then Evolve Your RPG Coding: Move from OPM to ILE ... and Beyond is an excellent first foray into the technology. It provides an amazingly comprehensive introduction to the concepts while at the same time delivering enough technical detail to make you productive very quickly.