As applications span more platforms, the days of open-systems and mainframe developers sitting in silos on opposite ends of the office are coming to an end. Enterprises need their developers to understand concepts and code tied to both front-end and back-end systems.
So, what should these developers learn about each other? A multitude of stark technical and terminological differences exist between the two computing worlds, for lack of a better term, but in this two-part series we’ll just focus on a few high-level concepts.
Go here to read what mainframe developers should know about open-systems. Here, we’ll explore five things open-systems developers should know about the mainframe.
1. Mainframe application development is highly specialized.
Mainframe developers tend to be highly specialized, but even so called mainstream developers can learn to manage mainframe applications and data, especially with modern tools and processes that help demystify the mainframe environment. Without these modern tools and processes, learning curves for large mainframe applications can be significantly longer than distributed applications for those who aren’t familiar with the mainframe.
The sheer size of mainframe applications are also why many mainframe developers focus on the maintenance or extension of applications—brownfield development—rather than new development—greenfield development.
Most of this is done in COBOL, a programming language created in 1960. For all the criticism it gets, it’s a great language and the best at what it does—run the mission-critical assets of the world’s largest organizations, which, in turn, run the global economy.
There are over 220 billion lines of COBOL in the world, with five billion added each year. It’s updated frequently, and IBM has even started using Continuous Delivery to send optimizations and feature enhancements derived from customer feedback into the language; however, despite its wide use and growth, COBOL is infrequently taught in computer science programs today, leaving much of the knowledge transfer to experienced mainframe developers in the private and public sectors—on the plus side, those new to COBOL can learn from the best, on the job.
2. Mainframe applications are large and complex.
Mainframe applications are composed of hundreds or more programs that work together but are typically changed and compiled as individual units. Their execution is controlled via JCL (short for Job Control Language), and they can execute either in batch or via an online transaction system like CICS or IMS, while open-systems developers are used to Java Enterprise Edition (JEE) and other application servers. On the mainframe, CICS and IMS both provide services for managing transactions.
IMS is really three sets of capabilities: IMS Transaction Manager; IMS Queues, which hold messages that the Transaction Manager processes; and IMS Databases, which provide fast, hierarchical data access.
Mainframe programs “throw exceptions” that are usually caught by z/OS, the IBM mainframe’s primary operating system, and converted into abnormal terminations called abends (Abnormal End). Common batch abends are S0C1, S0C4 and S0C7. Common CICS abends are ASRA, AFCY and others. Abnormal End actually stops program execution, unlike Java Exceptions, which allow the error condition to be caught and handled by the program.