As the author, I'd like to respond to the review entitled "Sloppy code, typo's -- unsafe for beginners" that appears below. The reviewer criticizes the book based on only a partial reading of it. As he states, his review is based on what "...I've encountered so far," to page 214. Reading the entire 700 page book yields a different perspective.
As the book explains, its first eight chapters are a simple tutorial on Rexx. Example scripts are designed to be short, clear, simple, and readable. They rely on common Rexx conventions and defaults. They generally exclude variable declarations, error and return code checking, exception routines, and other coding features present in industrial-strength programs. In a tutorial these would needlessly complicate the code and confuse the beginner.
The reviewer appears not to have understood this. The chapters following the tutorial present the advanced features and techniques of Rexx coding that are used in writing the industrial-strength code the reviewer wants to see.
For example, chapter 8 discusses variable scoping and analyzes ways to safely interface routines. Chapter 9 covers how to develop bug-proof code using the debugging and the trace facility, while chapter 10 details how to trap and manage errors with exception routines. Chapter 14 illustrates how to analyze feedback from external commands to develop fail-safe scripts.
To specifically address the reviewer's complaints: chapter 12 discusses the need to initialize all variables in production programs. It also discusses the differing approaches to quoting he raises in his example. (Chapter 12 presents many other "best practices" for writing reliable programs, including a section on common coding errors and how to avoid them.)
The book discusses the reviewer's concern about case-sensitivity in file naming conventions at many points (pages 186, 214, 436 and 519). The reviewer has mis-read the example he cites as incorrect on page 214. The explanation following that code specifically states "This filename may or may not need to be coded in quotation marks depending on which operating system the script runs under. Unix-derived systems like Linux use case-sensitive filenames, so you will typically encode filenames in quotation marks. Windows and related systems do not require quoting filenames; they are not case-sensitive."
Concerning the reviewer's argument on the Leave and Iterate instructions: the book follows expert opinion in referring to these as "unstructured constructs." For accurate, authoritative definition of structured programming, refer to the classic works of Ed Yourdon, Edsger Dijkstra, or Ole Johan Dahl.
What's the bottom line? Is this book worthwhile? During its development the book was reviewed by about a dozen Rexx developers in its entirety, and about three dozen experts - including nearly all the luminaries in the Rexx community - provided feedback on parts of it. While there is plenty of room for differences of professional opinion and coding style, the reviewer errored in not reading the entire book before publishing his emotional, negative review.