In-Depth
Staying Power!
- By Stephen Swoyer
- December 1, 2005
The Big Idea
Not Fade Away
- COBOL is not about to go away. According to the Gartner research firm, the aggregate base of COBOL code—which exceeds 200 billion lines—continues to grow each year.
- COBOL codejockeys who come to the mainframe from OO programming backgrounds prefer to stick with vanilla COBOL 85.
- In mainframe model-driven architecture, business requirements are expressed in the context of a model, and not specified explicitly in COBOL code, so they can be easily modified.
Common Business Oriented Language and Assembler
rule today's mainframe shops, but enterprise codejockeys
have more application development options
than ever. Even programmers who have little or no
mainframe experience can write C, C++ or Java code on Windows
and Linux systems and recompile it to run on heavy-metal systems.
COBOLis not about to go away. Many COBOLapps have been
running nonstop for decades, and according to the Gartner
research firm, the aggregate base of COBOL code—which exceeds
200 billion lines—continues to grow each year.
What's more, service enablement and service-oriented architectures
have given legacy apps a new lease on life. Key application features
can be exposed as services, which lets the mainframe behave
as a good citizen in the heterogeneous enterprise landscapes of today.
Given the preponderance of mission-critical data sitting in CICS,
IMS, VSAM and other mainframe data sources, that's a good thing.
There's another wrinkle, says Tyler Allman, a product manager
with app dev testing tools vendor Compuware: The richly declarative
and copiously documented COBOLlanguage is ideally
suited for the requirements of business. COBOL often strikes
executive decision-makers as a safer, more reliable bet than 3GL
languages such as C or Java—even as IBM is impelling customers
toward mainframe-based Linux and WebSphere solutions.
Factoid
Turing Award winner Edsger Dijkstra, a fierce critic of COBOL, assailed that language’s highly declarative syntax. In an infamous formulation (which he later repudiated) Dijkstra argued, &The use of COBOL cripples the mind; its teaching should therefore be regarded as a criminal offense.&
In terms of runtime performance alone, [COBOL] is several
times faster than Java,& Allman argues. &And COBOLis a very well
understood, self-documenting language. It is often the case that people
are able to get some initial code written in Java fairly quickly,
but there are many challenges as you try to ramp that application
up, in terms of debugging—especially when you've got these very,
very granular methods—tracing through where the problem is.&
Evolution through intelligent design
COBOLhas evolved and bears only a passing resemblance to the
first incarnation, which debuted in 1959. Now COBOL is UNICODE—compliant, object oriented and XMLfriendly. It can be
a full-fledged participant in MDAdevelopment. Web services can
be called natively from COBOL apps, and COBOL apps or
services can be wrapped in Java. And although IBM has pushed zLinux as a strategy to help break the
mainframe's dependency on COBOL,
some big-iron shops are deploying
COBOLapps on mainframe Linux. Talk
about staying power.
The changes introduced as part of the
revised COBOL 2002 standard were the
first since COBOL 1985 introduced support
for local variables, dynamic memory
allocation and other conceptual fixtures of
modern 3GLs. The result is that COBOL
2002 is object oriented, though it's doubtful
that most COBOL codejockeys are
taking advantage of its OO capabilities.
&In production environments, over
three-quarters of [our customers] are generating
straight COBOLcode,& says Mike
Smith, VP of development with Computer
Associates. Smith heads up CA's All-Fusion Gen, a model-driven development
tool that's used by organizations to generate
COBOLcode for their mainframes.
Help Wanted: Sooner or Later
Many codejockeys cross over to the mainframe world when opportunity knocks. That's the path followed by Chris Little, a 35-year-old mainframe technologist with the Department of Human Services who parlayed his skill with Linux into a career working with mainframes. "I came up through operations," Little says. "That was my first mainframe experience." He started managing and programming his employer's HP-UX resources, followed by some "light" z/OS coding responsibilities. "I wrote some CLISTS and REXX scripts to load DB2 stuff," Little says. "A few years ago, management decided to put Linux on our zSeries. To make it useful, I needed to learn z/VM. Most of my day-to-day work is in the zSeries space, supporting our Linux activities."
Little does more zLinux management than programming, but he's picking up other mainframe skills along the way. For example, although he isn't a COBOL programmer by trade, he is learning the ropes from his colleague, systems programming veteran Ken Sharpe. "Chris is the baby around here, but...we can't [help but] notice he is good at what he does...[he's] just more gung ho than us gray hairs, so [he] could use some aging," Sharpe deadpans.
Like many mainframe programmers, Sharpe enjoys the life. He says there's always work, and he isn't worried about being forced to retire. He thinks it's a good opportunity for other codejockeys who cross over from other skill areas. In most cases, Sharpe says, such mainframe transplants typically move on to bigger and better things. "It's hard working for state government to get someone who is young and to train them. That's because if they are good quality, they end up going somewhere else."
All isn't sweetness and light. Mainframe skills are among those most likely to be outsourced, in some cases to offshore locales. There are several reasons for this: the two most important are the comparative maturity of mainframe apps and the relative high cost of big-iron programming expertise. As it stands now, much of the work proper of mainframe systems programming consists of maintenance activities such as break-fix coding or implementing new feature requests. Such activities are viewed as easy to outsource. "When it makes sense economically to put an application into standard maintenance mode, you're going to look for your best cost performance to do that, and in a lot of cases, you get your best cost performance by outsourcing it," confirms Mike Smith, VP of development with Computer Associates.
Nevertheless, Smith and other mainframe boosters say codejockeys who are mulling career changes should think about crossing over. For every mature mainframe app that's outsourced as standard maintenance, there's an existing application--written in Assembler, COBOL and, increasingly, Java or J2EE--that's being refitted for new life, either as part of a service-enablement initiative or simply because of changing business requirements.
"It goes beyond SOAs," Smith says. "Customers are also looking at their mainframe [application] portfolios and seeing an opportunity to create new offerings and add some business logic and new code to existing applications. When you think about how much money companies have invested [in their mainframes], these kinds of [mainframe app dev] skills will always be in demand."
—Stephen Swoyer
Same old COBOL
Even COBOLcodejockeys who come to
the mainframe from OO programming
backgrounds prefer to stick with vanilla
COBOL 85. "I've heard about [OO
COBOL], but I've never really talked to
anybody who's used it," confirms Josh
Smith, a mainframe system programmer
with The Timken Comany, a manufacturing
giant. "Most everybody I work
with has been here for 10 years or more,
and we've been using mainframes for
more than 30 years now. But we're still going
by the most recent ANSI standard."
In comparison to mainframe's elders,
Smith is a bright-eyed youngster. His first
exposure to mainframe coding was in college,
when he had a chance to program Assembler
on mainframe hardware that
IBM donated to his school as part of its
zSeries Academic Initiative.
He was hired straight out of college by
Timken, which—like most other longtime
mainframe shops—is desperate to
recruit new mainframe expertise. Like
most of his classmates, Smith cut his
teeth on 3GL languages and visual development
tools. Slightly more than a year
after graduating, however, he’s at home
writing COBOLcode on a 3270 terminal.
“Generally I enjoy it,” he says. “There are a few things that seem backward from
the way they’re done in other languages.
Of course, because I picked up COBOL
after these other languages, that’s why they
seem backward to me,” he comments. “It’s
a little easier to read than some of the other
languages, especially compared to C++.
It reads almost like English.”
If the COBOL 2002 OO extensionsare of dubious value to the vast majority of mainframe programmers, another of
today’s most salient app dev paradigms—MDA—has been far more successful.
New world of heavy-metal app dev
Larry Schmidt wears a couple of hats for
services giant Electronic Data Systems.
He’s an enterprise architect, for starters,
and he’s also chief architect of application
delivery for EDS’ booming healthcare
practice. In this capacity, he oversees
an enormous mainframe development
project—the company’s MetaVance, a
claims-processing solution that EDS
markets to U.S. healthcare insurers. It’s
available for AIX, HP-UXand Solaris, in
addition to the venerable mainframe. In
its big-iron form, it consists almost entirely
of COBOL code. It’s based on an
older IMS-based application (IMS is a
non-relational mainframe data store),
but—almost 10 years on—bears only a
facile resemblance to its predecessor.
MetaVance is a textbook example of the brave new world of mainframe app
dev. Although it’s written in COBOL, its development owes very little to the coding
efforts of COBOL programmers.
That’s because MetaVance is a product
of CA’s AllFusion Gen model-driven development
tool. This means programmers
and business analysts collaborate to
build models that AllFusion Gen uses to
generate COBOL code for mainframe
systems and C code for UNIXplatforms.
The $64,000 Question
Mainframe boosters say programmers don’t need to know a thing about COBOL, Assembler or another legacy language to develop software for the mainframe apps of today. Now that there’s a mainframe-ready flavor of Linux and a mainframe engine specifically optimized for Java, codejockeys can easily develop software for mainframe systems from the comfort of Microsoft Windows, Linux or UNIX workstations. So what are they waiting for?
There's a method to IBM's madness, says Mike Bliss, System z9 and zSeries director with IBM. "From an application development perspective, recruiting is probably the biggest concern [customers] have," he comments. "It's the systems programmers; it's the application developers they're most worried about. It's replacing the folks that are getting closer to retirement that have a good view of the system, and that includes software architects, too."
—Stephen Swoyer
This approach has a number of
advantages, Schmidt says. “Since [the
mainframe] has been around now for 40
or 50 years, some of our COBOL programmers
have been around for a long
time, too, [and] the only knowledge we
have of these programs is in their heads.
So what happens when they retire?”
MDA helps to inoculate EDS and its customers against the effects of these
and other disruptions, Schmidt says. “I
think MDA gives us requirements that
are expressed at a higher level than
COBOL or Assembler programming,
which I think allows a larger population
to understand what the system is doing.”
From a technology perspective, healthcare is a reliably dynamic field: there are
HIPAA requirements, for starters, along
with a host of state and even local requirements,
some that change yearly.
Mainframe DNA
In mainframe MDA, business requirements
are expressed in the context of a
model, and not specified in COBOL
code, so they can be easily modified.
Mainframe shops are notoriously risk
averse. Many continue to develop software
just as they have for decades. And some
performance-conscious customers will
balk at the idea of running generated code
on their expensive mainframe hardware.
Model-driven development as a pervasive
design methodology isn’t without its
critics, either. As for the first objection,
EDS’ programmers typically do very little
to tweak the COBOL code generated
by AllFusion Gen, Schmidt says. And even
granting the legitimate objections of
MDA’s discontents, there are cases in
which even the most conservative of mainframe
development shops might want to
consider a model-driven approach.
“It really depends on what their business drivers are,” Schmidt explains. “If it
turns out that the enterprise is pretty
stable, and change for that specific enterprise
is something that is very small, it might not be worth the effort to move
into a model-driven architecture. If it
turns out that you’re in a volatile industry
where the rate of change is very fast,
having the ability to express requirements
as models improves the overall
productivity of the developers and allows
you a faster speed to market with whatever changes need to occur.”
IBM Takes the Initiative
Earlier this year, IBM announced an ambitious new program called the Academic Initiative for zSeries to expose college students to mainframe concepts and methods. The program involves more than 150 colleges and technical institutions and provides students and instructors handson access to zSeries mainframes, a mainframe-oriented curriculum, expert assistance and training. IBM hopes the Academic Initiative will recruit as many as 20,000 mainframe pros over the next 5 years.
There's a method to IBM's madness, says Mike Bliss, System z9 and zSeries director with IBM. "From an application development perspective, recruiting is probably the biggest concern [customers] have," he comments. "It's the systems programmers; it's the application developers they're most worried about. It's replacing the folks that are getting closer to retirement that have a good view of the system, and that includes software architects, too."
--Stephen Swoyer
It’s irresistible
IBM is betting customers who deploy Linux
on heavy metal will exploit the GNU
development stack or the Eclipse IDE to
build 3GLapps. There’s some hope for this
strategy: zLinux and WebSphere-onzSeries
workloads account for the bulk of
new mainframe capacity. However, there
hasn’t been an explosion in zLinux-based
app dev. And mainframe WebSphere is
only just starting to pick up steam.
If nothing else, the promise of moving
expensive COBOL apps running under
z/OS to IBM’s deep-discounted zLinux
engines is irresistible. That’s the approach
taken by COBOLprogrammer Joe Poole’s
employer, a prominent retailer. His costconscious
CIO is determined to wean his
company off expensive z/OS mainframe
capacity—even if it means porting its entire
application stack to zLinux. “COBOL
is still the primary language, so much so
that the CIO has been looking at Acu-
COBOLas another way of developing applications
on Linux rather than z/OS,”
Poole explains. “He’s looking to reduce the
software budget any way possible, and still
use the existing programming staff.”
ILLUSTRATION BY CHRISTOPHER ZACHAROW
On ADTmag.com
- COBOL-to-Java translation tool
By Linda L. Briggs www.adtmag.com/article.asp?id=11627 - Legacy integration tools driven by SOA
By Linda L. Briggs www.adtmag.com/article.asp?page=1&id=11468 - Enterprise modernization: New life for old apps
By Jason Halla www.adtmag.com/article.asp?page=1&id=11166