For years now the question has been surfacing in the OpenVMS
community "Where are the pimply faced kids?" The other situation
which seems to continually occur is a developer of one language
suddenly finding themselves having to modify or maintain an
application written in a language completely foreign to them.
This book was a year long effort to answer both of those questions.
It also should help those to work on a good platform. Once the
rudimentaries of logging in, symbols, logicals and the various
editors are handled this book takes the reader on a journey of
development using the most common tools encountered on the OpenVMS
platform and one new tool making headway.
A single sample application (a lottery tracking system) is developed
using FMS and RMS indexed files in each of the covered languages.
(BASIC, FORTRAN, COBOL and C/C++). The reader is exposed on how to
use CDD, CMS and MMS with these languages as well.
A CD-ROM is included which contains the source, MMS and command
files developed through the course of the book. Once RMS has been
covered with all of the languages the same application using MySQL
with C and FMS is covered. This breaks readers into the use of
relational databases if they are not currently familiar with the
concept. Rounding out the technical portion of the book is the same
application using RDB with FMS. While source code is provided for
all of the language implementations only FORTRAN and COBOL are
actually covered in the text.
It is the hope of the author that this book will prove a useful
reference on the desk of every OpenVMS developer. The inclusion of
MySQL should benefit both those unfamiliar with relational
technology and those platform veterans interested in playing with
MySQL for the first time.
There are two main intents of this book...
Allow developers who know at least one of the covered
languages on another platform to quickly come up to speed on the
Assist current OpenVMS developers finding themselves having to
work with a differentlanguage on this platform.
Tips from the Book
The /SPECIFICATION qualifier of the SORT command lets you
identify a text file which contains a plethora of power.
You can define named fields, named keys, named test conditions,
inclusion criteria, omission criteria. In a batch job
stream, you typically have a lead program which creates the sort
specification file (if you need to do record selection that
varies from run to run), execute the sort command, then write
your follow-up program to process the sorted data. This is
a much more acceptable approach than writing one massive
executable which will run for hours without creating many
entries in the log file. Most developers I run into don’t know a
lot about the sort specification file, so we are going to cover
it in the COBOL chapter.
A reference is a “special” object. There is a reason we
covered COBOL prior to covering C, and references are it.
You better have read that chapter. When we discussed the
linkage section in COBOL, we discussed how COBOL doesn’t really
pass parameters unless it is forced to pass them. The
linkage section creates reference points back into the caller’s
working-storage section. These references allow your
called module to use those values just like they were your very
own, but they aren’t. The reason most COBOL programmers
don’t even know there is a GIVING clause on the procedure
division is because they know the linkage section operates via
references (unless you tell it not to). When you alter the
values of items passed by reference you are actually altering
the values in the caller.
"DO NOT begin any new database projects without first reading chapter 13 (MySQL) and chapter 14 (Oracle-RDB) of this book. Hint: while you can acquire MySQL for
free, and it may have a place for some small applications, it may cost you more in the long run."
Neil Rieck, OpenVMS Application Developer
"Hands-on programming throughout the book provides a highly effective learning tool, and the best practices, advice, and knowledge transfer from the author gives the reader the unique
feeling that they are sitting down next to a mentor, being coached through the tricks of the trade!"
Regan Windsor, Reader Views
"I had it shipped to the Netherlands for the price of $96. It arrived within a week of the order date. Worth every dollar (euro). "
"Highly recommended for OpenVMS programmers (especially those new to OpenVMS who need a good bootstrap). At the very minimum, a copy of this book should be purchased as an "office resource" in every
location where OpenVMS developers work."
Neil Rieck, OpenVMS Application Developer
"Amazing. This is a truly astonishing work and a MUST for everybody who is starting with application developing, be it on VMS or not (I can not tell for others as I am starting myself). It is
not a book where you will find many theories about abstract topics but one displaying everything you need to know by means of examples, explaining each example's important parts in-depth. You really feel
the experience of the author throughout the text! This is a book I'd try to take with me if my house was burning down."
After I got over the surprise of seeing a new book on OpenVMS Software Development I wondered at the title - this is an 800 page book with a CD! The book is
intended for people who are familiar with programming on another platform and are faced with maintaining an application on VMS
written using classic OpenVMS software tools. Perhaps a better title would be “What a person unfamiliar with OpenVMS should know to maintain an OpenVMS
Hughes describes uses of: the MMS and CMS tools from the widely used DECSET OpenVMS software development toolkit; CDD; FMS; the RDB and MySQL databases. He also mentions other
tools often found in the OpenVMS application development environment such as VMSMAIL, PHONE etc. Parts of OpenVMS which will be unfamiliar to a person
transferring from another platform, such as logical names and DCL symbols, are introduced as they will often be encountered when maintaining an application on OpenVMS.
The book is based around a single application which is developed in each of DEC BASIC, FORTRAN, COBOL, C and C++ using a variety of tools. Full source code
is provided on the CD. By repeatedly implementing the same thing in different languages the programmer familiar with one language can learn about another. The presented code is not suitable
for a production environment but is intended to illustrate something being described in the text. For example the error handling is not always fully implemented except when Hughes
wishes to describe dealing with errors.
Hughes describes building the application and typical ways of organizing the development environment and highlights common pitfalls for programmers coming
from other platforms. The book is written in American English and in a casual style. Although it is easy to read some people who are not native English speakers may not recognise some of the
colloquial terms used. I don’t think this will significantly hinder understanding.
Hughes has opinions about how things should be done and is not afraid to state them! Personally I find an opinionated book easier to engage with because there is
something to argue or agree with. The final chapter is Hughes opinion on the state of the IT Industry.
The key to appreciating this book its specific focus. I think the target audience will find this a useful resource to sit alongside the OpenVMS Documentation. However the
material is also useful for an OpenVMS developer faced with an application in a different programming language to the one they