Wednesday, October 27, 2010

The Minimum You Need to Know About Java on OpenVMS
Author: Roland Hughes

THE MINIMUM YOU NEED TO KNOW ABOUT JAVA ON OPEN VMS VOLUME ONE By Roland Hughes REVIEWER: Rod Clark Programmers working, or starting to work with Java on OpenVMS (Virtual Memory System) are certain to appreciate this excellent, hands-on tome on working with this language (complete with accompanying CD)—but as author Roland Hughes makes clear, interested programmers should first read his earlier book, The Minimum You Need to Know to Be an Open VMS Application Developer, since this book builds comprehensively on that one. A sequel (Volume 2)is in the wings. Hughes begins with an introduction that frames the basic reasons programmers are having to use JAVA in these applications and candidly lays out the major pitfalls programmers will encounter when applying JAVA to VMS. He focuses in particular on problems that C and C++ programmers have with JAVA, paying special attention to the momentum of the C and C++ mindset they bring to the table and the problems that can generate. For example, he points out that in JAVA, most things are classes—and while they may look similar in C and C++, they are not. He feels that many of these problems stem from the syntax and the origin of the language. Because Java was originally created as a pure OOP language used in imbedded systems (like the system in your microwave or VCR), almost everything in it is a class. Hughes makes it clear that in order to use JAVA successfully on Open VMS, you need to develop a Free Class Library, and reveals how to create JAVA classes with the Java Native Interface (JNI). Hughes provides a plethora of useful tips for transcending these difficulties, framed in a pragmatic approach that distains expensive shortcuts, and enables programmers to descend into the bowels of the applications with a knowledgeable voice at their elbow. The text contains many hand-on practical exercises that teach programmers to build applications while simultaneously constructing infrastructures, rewriting the same application with each new tool under review. At each step there are detailed explanations, examples and illustrations that allow the reader to move back and forth between the text and the application, providing a rich learning experience in working with JAVA on OpenVMS. Part of what makes the book especially valuable is Hughes’ comprehensive candor about the flaws of JAVA when it is applied to OpenVMS. In addition to discussing the problems faced by C and C++ programmers as they try to change their mindset as they learn to work with JAVA, Hughes’ explores a series of other challenges they are likely to encounter, including problems relating to case sensitivity and case sensitivity inside the compiler, plus problems resulting from the fact that JAVA is only a semi-interpreted language. While conveying much useful substance, the author also engages in lively, cogent (and sometimes humorous) commentary on what is driving the increased use of JAVA on Open VMS in contemporary IT culture. As he looks at not only the “how to,” but he “why” of Java in these applications, it is clear that his sympathy is clearly with veteran C and C++ programmers and not IT management. A significant part of the problem, he feels, lies in the roots of the process and the way a great deal of IT business is being conducted not just with reference to JAVA, but with software projects in general. In recent years, many software projects have had a tendency to turn into monsters, destroying schedules and budgets, and raising programming costs late in the curve—a trend that does not serve IT goals well. As software budgets rise, management is desperately seeking “silver bullets,” tools to cut costs while trying to achieve ever more challenging IT goals. But as Fred Brooks observed in his IT classic, The Mythical Man-month, the root of the problem is not just rising costs, but something inherent in the evolving nature of the information revolution. As the amount of data available rises faster than the ability to process it, programming tasks become ever more challenging. As a result, even as hardware costs are dropping, many software costs continue to rise. To cut costs, many projects start cheap, and are forced to add staff later when problems emerge. Unfortunately, the addition of people to a software project late in the process actually makes things worse. In a similar vein, Hughes suggests that IT management, by looking for a silver bullet, is ignoring the roots of the problem by only seeking short-term cost-cutting solutions. Silver bullets are often advertised, but do they really exist? Hughes clearly feels that in the end, quick fixes and short term cost cutting measures are penny wise and pound foolish. In the final section of the book, “Ruminations,” Hughes engages in a colorful and educational rant about the state of the IT industry and the programmers that work in it, offering useful advice and insight that will be valued by novice and veteran programmers alike. Bravo, Mr. Hughes! Any IT professional using VMS should have this book on his/her shelf, and the “prequel” and sequel as well.

No comments:

Post a Comment