The Register® — Biting the hand that feeds IT

Feeds

Uni profs: Kids today could do with a bit of 'mind-crippling' COBOL

Forget Lua, time go to old skool

Customer Success Testimonial: Recovery is Everything

Want a guaranteed job in IT? Learn COBOL, even if it cripples you mentally – that’s the advice of university profs teaching tech.

Ignore, for a second, the fact COBOL doesn’t feature in the top 20 of languages developers are using in anger today. Those in charge of setting university IT curricula reckon there’s no better guarantee of a job than tooling up on COBOL.

COBOL is good for another 10 years thanks to its huge presence in mainframes and on Unix systems running mission-critical apps in banks and government.

During this time, COBOL systems must be modified and maintained and 21 per cent said learning COBOL will “future proof” students’ careers as demand outweighs supply with the current generation of COBOL heads retiring.

Seventy-one per cent of those running university IT courses reckoned employers will continue to rely on COBOL for at least the next decade, according to a survey of 119 universities across the globe by COBOL tools-maker Micro Focus. Despite this, just 27 per cent of them offer COBOL programming in undergraduate or post-graduate study.

Fifty-eight per cent of the academic leaders surveyed said they believed COBOL should be taught at university.

Yet, there’s a problem – a few problems, actually. And a paradox.

Every few years Micro Focus tries to sell us on the hidden importance of COBOL. But with Micro Focus customers including Tesco and Standard Chartered Bank, the company has a point about the prevalence and importance of COBOL.

Future-proof? Really?

However... Problem number one: COBOL might make you employable, but it won’t necessarily get you a job. Based on the TIOBE Programming Community Index, students are better served by Java C, C++ or PHP.

Another problem is interest factor. Students being students and devs being devs, COBOL is placed at the perfect intersection of disadvantage when it comes to what languages get used. Both students and devs are interested in the future, and what’s new and successful - not in a language that dates back to 1959. Today, that’s PHP or Ruby. If you want a guaranteed job, especially a well-paid one, it’s Java and C++ for a position in The City or for becoming a fabulously well-remunerated consultant.

The thesis of the Micro Focus poll is that COBOL has a life ahead in maintenance mode and on that, at least, Java and C++ are already there, thanks to their pre-cloud history.

Michael Coughlan, a lecturer at University of Limerick who participated in the Micro Focus poll, blames the fact that these other languages are grabbing all the headlines for the dearth of interest in learning or teaching COBOL.

He reckons employers should make more of their need for COBOL in their job ads – he mentions that Ireland’s internal revenue service, running COBOL on Unix, has started advertising to recruit four to six COBOL programmers a year.

“The problem with COBOL is it doesn’t have a strong presence in news so people don’t realise how prevalent it is, and from a student point of view they saw hype around Java and C++ and so they saw that as the future,” Coughlan tells us.

Coughlan pitches his university’s own COBOL course at graduates rather than at the undergrad intake. “The computer industry is prone to hype and young programmers are interested in that. That’s one reason we are teaching COBOL in a graduate training course – it’s because they have a degree in another subject. They are not new they have a more mature view and will not be tempted by the hype."

He calls Java “the new COBOL” with young, proto devs tempted by Ruby, Lua and Python.

Coughlan, who has been teaching COBOL since 1980, is no programming newbie and is actually a convert himself. It was the dawn of the PC era and the Irish government wanted a computer literate workforce. Coughlan had been dabbling in COBOL building stock-control programs for his father’s business on a Commodore PET, and took the government’s money for a year-long conversion course at the university where he now teaches.

All very mature. But here’s the paradox: Micro Focus polled those academic leaders who set the IT curricula and run the courses. These are the very people complaining that COBOL is not getting taught. The power to change is in their hands, although obviously they are powerless to change students' minds about where to enrol.

It's all academic

Talking to Coughlan and reading the Micro Focus survey revels the real reason why COBOL's not getting taught at university: there's a schism among the profs, and there are just as many prejudices and differences of opinion among those doing the teaching as those doing the learning.

Remember the 21 per cent Micro Focus said believed learning COBOL future-proofs students’ career options? A similar same number “had a negative viewpoint” on COBOL “suggesting a need to educate some of the educators” Micro Focus tells us.

Of those who need "re-educating," 14 per cent called COBOL “uncool” and “outdated” and reckoned other more modern languages were more exciting. Five per cent said COBOL was dead and had no future while three per cent claimed “no prior knowledge” of COBOL.

Coughlan offers his own theories on why COBOL's not getting taught: crowded IT curricula mean that COBOL gets bumped for “more important” subjects; that academics at “traditional” universities object to COBOL’s theoretical underpinnings; and that other seats of learning object to “vocational training". Still more harbour a “not-invented-here” feeling: unlike C, C++ and Java, COBOL was born thanks to the US Department of Defense rather than from the brains of fellow computer scientists.

Turing Award winner Edsger Dijkstra, who invented the Dijkstra search-graph algorithm for selecting the shortest point between two nodes, delivered the most famous diss of COBOL, saying: “The use of COBOL cripples the mind; it’s teaching should, therefore, be regarded as a criminal offense."

And he was a fellow computer scientist. ®

SaaS data loss: The problem you didn’t know you had

Re: Proper programming language

Good points. This is one reason we went back from Java (still used by us for teaching OO) to C for our initial programming course. We find the students learn to understand what is going on better. Having to do your own malloc and free can be a pain, but learning what memory management actually is about is useful.

More importantly, I think it is important to teach the students programming rather than teaching them a programming language. The first is a way to think about solving problems, the second is a tool to achieve a result. You need to learn both of course. In terms of programming languages, the most important skill is to learn how to teach yourself a new one.

Another point is that there are two reasons to learn a new programming language:

1) because you want to work on a project written in that language

2) because you want to learn new ways of thinking about programming

If you have learnt to program in Pascal, learning C does not give you a fundamentally different way of approaching programming problems, but Haskell or Erlang will. A thoughtful discussion on this is found here.

11
0

You clearly have no idea of the economics involved.

I regularly deal with customers who have small-to-medium COBOL installations (relative to average sizes in the industry).[1] That's a few hundred to a couple thousand individual COBOL programs, generally a mix of interactive (CICS and/or IMS) and batch (JCL) processing, with all the associated resources: flat files, databases, JCL scripts, screen definitions, system resource definitions, ...

Migrating to a compatible COBOL dialect and emulated mainframe environment on Windows or UNIX usually takes a year or more for an application suite like that. And that's with no source code changes. The customer has to figure out what they have in the application portfolio and its resources, build a test suite, get the gear in place and figure out how to administer it, decide how they're going to develop in parallel until the switchover happens (because development doesn't stop on the old code just because you're trying to move to a new platform), assign resources, figure out the environmental differences, take care of compliance and other legal issues, migrate, test, plan the switchover...

Migrating to a different language is orders of magnitude more expensive, in time and money. Yes, periodically organizations decide to junk all their COBOL and replace it with whatever turns the CIO on - Java used to be the popular choice, and often still is, though other languages are making inroads. We see a lot of those projects fail, when they're years behind schedule and have run over budget by several times the initial estimate.

Even our customers often do phased migrations, where they tackle one application at a time. That has complications of its own - because generally the migrated apps still need to interact with the ones still on the mainframe, so you have additional communications, data-access, and distributed-processing complexity to deal with - but it's simply not economically feasible for those organizations to do the whole migration all at once. And that's despite the fact that they reliably see savings for each application that they migrate, starting as soon as they can reduce their mainframe capacity, thanks to mainframe leasing terms. They know the investment pays off; but they only have so much to invest in it at any given point.

Saying that organizations should simply rewrite all of their COBOL applications is like recommending everyone immediately switch to plug-in electric cars. It's the same sort of pie-in-the-sky thinking.

[1] As noted above, I work for Micro Focus; not on COBOL, but on tech that's used by many of our COBOL customers.

4
0

Re: Can it do recursion yet?

Yes. For decades now. Try to keep up.

4
0

More from The Register

Bjarne Again: Hallelujah for C++
Plus: Now officially OK to admit you never used STL algorithms
Nuke plants to rely on PDP-11 code UNTIL 2050!
Programmers and their walking sticks converge in Canada
Interwebs taunt Sir Jony over Apple eye candy makeover
Hey Ive, Ive... add more unicorns, willya?
SCO vs. IBM battle resumes over ownership of Unix
Zombie lawsuit back and wants to suck the brains out of Linux
Red Hat to ditch MySQL for MariaDB in RHEL 7
So long, Oracle! Don't let the door hit you on the way out
Shy? Socially inadequate? Fiddling with your phone could help
App 'tells the brutal truth' about social inadequates' chatup lines
Java EE 7 melds HTML5 with enterprise apps
New release arrives with GlassFish, NetBeans support
 breaking news
'Office Facebook' firm Tibbr wants you to PAY for mobe-meetings app
Great idea. Punters won't cough for it though
 breaking news
The only Waze is Google: Ad giant tipped to gobble map app 'for $1.3bn'
Pac-Man-satnav-ish upstart in bidding war with Apple, Facebook
 breaking news
PM Cameron calls for modern, programmable computers! (We think)
IT education musings to G8 chiefs to mystify IT industry