Writer: JOHN C. BYRNE
Published Year: 2009
Publisher: Course Technology
Page: 432 Pages
Size: 6.5 MB
It has been more than 10 years since Sun first announced the Java programming language. It is safe to say that few technologies have generated similar excitement, interest, and allegiance. The promise of this new, cross-platform, object-oriented language with its simplified syntax has garnered the support of large numbers of developers, tool vendors, industry experts, and, of course, the occasional consultant.
To its credit, Java has more than lived up to its potential. Today, Java is used to build all types of products and systems, from enterprise class accounting systems to handheld phones and personal computers and everything in between. While all this excitement is going on, the day-to-day responsibilities of an MIS shop continue. Applications need to be rolled out, existing systems supported, and an occasional enhancement delivered. Many of these systems use legacy tools, such as COBOL, and are fundamental to the operation of the business. The people who support these systems are valuable repositories of business process information, and they know how computer systems are used to meet those business process requirements.
Scores of organizations have decided to replace these legacy systems, including their core business systems, with more modern ones written in Java. Most could probably use a rewrite in any case, and the allure of using new technology, including a new language, will likely overwhelm more than one VP of MIS. Who better to build these new systems than the people who understand how the business works? Does it make sense to assign these essential projects to the person who is writing his or her first business system?
Some of Java’s development efficiencies are available in any language, including COBOL. For example, coding styles that make use of subroutines implement important OO design principles. Many large, well-designed COBOL application development environments necessarily define and support good OO design techniques in the form of subroutines, copy members, and coding standards. However, in procedural language environments like COBOL, the compiler or the runtime system does not directly support the OO developer. A case could be made that OO development environments primarily make the compile and runtime tools aware of good, efficient coding techniques that have been in use for some time in traditional languages.
A natural language is the tool people use to communicate ideas to each other. Languages have a syntax and a vocabulary of terms that provide structure and organization to ideas. If one person adheres to the rules and provides a linguistic shape and organization to his or her ideas, it is possible to communicate with another person.
Computer languages perform very much the same role. Computer languages define a vocabulary and syntax structure that is suitable for a computer to understand.Programmers learn these rules and convert ideas into code. A programmer’s effectiveness is largely determined by how well he or she can communicate with the
computer. (Of course, there is the testing, training, documentation, and support parts of the job, but programmers would be better off reading Dr. Spock rather than Dr. Chomsky to gain insights here!) When people learn a new natural language, they often compare the new terms and syntax with what is already familiar to them. Language learning materials often have glossaries or translations of terms. The new syntax is defined, in part, by comparing it to the student’s “native” syntax. In fact, most people who learn a new language think in their native language and mentally translate into the other. Only when they are very comfortable with the new language will they finally think in the new language.
Instead of describing the Java object concepts and syntax in the abstract, or based on references using C or C++ programming languages, Java for COBOL Programmers,
Third Edition presents various object-oriented concepts first in a COBOL context, and then in the Java syntax that supports this concept. Then, after you are familiar with the underlying concepts, additional Java language rules are defined.For programmers trying to use Java in a real-world environment, this third edition has been updated to reflect the latest developments in the Java language and programming standards. Advances in the language, such as the new Generics feature, are covered. New alternatives for stream-based input and output processing methods are introduced, along with the latest XML processing options in Java. Also new in this edition is a chapter on the Eclipse graphical integrated development environment. This product is presented using a guided, step-by-step progression.
You can use the chapter exercises to explore helpful Eclipse features, such as smart editing, debugging, and refactoring. If you’re a COBOL programmer and you’ve written a subroutine—a subroutine that was used by someone else—then you already understand the most important Java object concepts. Sure, the syntax is different and more powerful, but the principle that one person writes code so others can use it without having to understand all of its details is the core principle of many of the OO design objectives. You still Introduction xvii need to understand the user’s needs, and specifications and documentation are still required. You may even be able to adjust end-user requirements based on technical issues, since it is expected that existing components will be reused. In theory, most development projects in an OO environment consist of collecting and shaping end-user requirements and then “assembling” solutions, using as many existing building blocks as possible.
Once you’ve decided to learn Java, the secret to success is to use the same process as when learning any new thing. Break down the information into manageable pieces, leverage what you already know, pick a good learning environment, and plunge ahead. You already know the hard part (i.e., how to translate business requirements into a computer language). You just need to learn a few new design principles, a new syntax, and some state-of-the-art integrated development environment. This book will help you get started.