back to article COBOL thwarts California's Governator

Inspite - or perhaps because - of its "difficult" birth, Common Business Oriented Language (COBOL) has become a survivor in the world of computing. That's caused problems when it comes to maintaining systems running the language. COBOL has now taken center stage in the rumbling controversy over the State of California's budget …

COMMENTS

This topic is closed for new posts.
  1. Anonymous Coward
    Anonymous Coward

    Cobol???? WTF

    Get rid of that legacy crap.

    Try the links below:

    http://gotlegacy.net/

    or

    http://www.maketechnologies.com/

  2. Anonymous Coward
    Boffin

    Cobolnator

    OK, someone had to say it. Now get on with working.

  3. Anonymous Coward
    Thumb Up

    I'm here for Sarah Connor

    ...and a good public ridicule.

    Oh, how we laugh.

    +1 vote for Article of the Month.

    B

  4. Nick Palmer

    Get rid???

    No way - the final guarantee of our survival is that even after Skynet takes over, 6 months later it'll still need some nonagenarian beardy to maintain it...

  5. Anonymous Coward
    Anonymous Coward

    Shhhh!

    I liked Y2K... Much panic... Much $$$ (Well £££)

    And I'm still in my 30s... JUST!

  6. Andrew Ducker

    Easier said than done

    It's easy to say "get rid of it", harder to get rid of millions of lines of code dating back up to 30 years, which _work_. Who pays to rewrite those systems? And why would they, when they work?

  7. Ralph B
    Thumb Up

    If ...

    I always thought that COBOL's

    IF A=2 OR 3 THEN

    was more elegant than other language's

    IF (A=2) OR (A=3) THEN

    I'm sure that must be the real reason for its longevity.

    [/sarcasm]

  8. Andy Pellew
    Alert

    A Tad Simplistic ...

    Think of it this way ... if COBOL were running your life support machine would you really want to just chuck it out and starting again? No. Of course not. So why should people whose paycheck depends on it be any different?

    It's not just a switch you can flick and anyone who thinks it is is obviously sitting in front of their PC writing software for themselves and no-one else. "Managed change", it's what keeps business running. A few years out in industry and that would be painfully clear to you.

    "Get rid of that legacy crap" - reminds me of when I was young and stupid. Now I'm just ... Hang on. That's not worked ...

  9. Geoff Mackenzie

    Nice one, IBM

    $30bn for a payroll system. Three years.

    I mean, I know it's a little more complicated than that, but still - $30bn!?

    Of course the real WTF(TM) is that adjusting salaries requires code changes. I smell a rat.

  10. Avalanche
    Paris Hilton

    Why not

    Why would they need to 'reconfigure' the system, I'd say a payroll system already has ways to increase or decrease payment?

    Otherwise, hire some people to manually enter the reduced wages, probably a lot cheaper :)

  11. Anonymous Coward
    Go

    @AC

    What? You moron! If the state actually spent money to upgrade, they wouldn't be in this mess.

    Friends of mine still work at the Florida state university system IT department.

    For literally decades, state computer departments have been going "can we upgrade from this frigging COBOL???!! PLEEEEZE?!!" and the state goes "NO MUNNY 4 J00!!"

    You really don't think the IT departments have been fighting to keep COBOL, do you?

    So they end up in this... er... state.

  12. Britt Johnston
    Pirate

    something fishy here

    I would be surprised if a pay rise were not implemented recently, or if it took so long. Does COBOLl not accept negatives?

    Well done the old buckaroos.

  13. Anonymous Coward
    Flame

    @AC

    > Get rid of that legacy crap.

    Sure... just turn it all off... shut 'em down...

    Oh, dear, the world's banking systems just stopped... so did the majority of the international financial services sector... I wonder what happened..?

    Get a brain and a life, dweeb.

  14. James Monnett

    ROFLMAO

    Hey Governator...

    I can find you and entire reitrement home full of programmers who will be happy to do the work, will cost you 12 Bn, 10 BN for me, and 2 Bn for the meds to keep them ALIVE long enough to do it........

    Shouldn't take more than 4 months if we give them extra prune juice and make them skip naptime....

  15. Anonymous Coward
    Stop

    $30 BILLION?

    That's obviously a typo - it must be $30 million, in which case it's a tiny proportion of the budget deficit (although still a ridiculous sum of money).

  16. Daniel B.

    Dijkstra killed COBOL?

    Oh, I wish he gave his opinion on VB then ...

    Anyway, even with COBOL shortages, there are COBOL programmers out there, the thing is they're scarce so they'll charge a lot for their expertise. So trying to go cheap just won't help the Governator!

  17. Martin Silver badge
    Dead Vulture

    In this case it's just an excuse

    The republican governer reduced salaries, the democrat councillor refused to implement the cuts. There was a law suit, the council lost and now they have come up with a "The dog ate my homework" excuse to prevent them carrying it out.

    You can bet that if there was a need to raise salaries they would find a solution pretty quickly.

  18. Michael

    $30bn for new software?

    What the fuck are they going to do, buy a small country to do the coding for them?

  19. Anonymous Coward
    Joke

    COBOL - I'll be back =D

    Lub COBOL, But seriously are they finding that hard to find programmers - should be lots given they got rid of a load of COBOL programmers. Oh wait, the ironey, the pain.

    --

    PIC X OCCURS DEPENDING UPON LAUGHS

  20. Chris

    Not just nonagenarians

    I'm 60 years away from being a nonagenarian and was a COBOL programmer at 23 - and I don't have a beard either! I think procedural languages still have their merits for things like Payroll, though it must be badly written to take 6 months to implement the changes

  21. The Other Steve

    Some prevarication is afoot.

    COBOL is not. in all fairness, a hard language to learn, just a very very ugly and painful one to code in, but it's not intrinsically any harder to maintain than any other language, if you know the way of it.

    Any competent code monkey can pick up COBOL. They might become psychotic and top themselves afterwards, but it's doable. There isn't anything particularly magical about it that makes it any different from other languages. It's a bit bondage and discipline, and has some funny ideas about whitespace, but then so does Python.

    I speak COBOL, and have worked on some crawling horrors of legacy systems that were built with it, often times running in a machine emulator of dubious virtue pretending to be old ICL kit. It's never impossible, just often unpleasant. But much legacy systems work is unpleasant, it's just the nature of the beast.

    So someone is telling the governator porkies, methinks. Maybe I'll shoot him an email with my CV.

  22. Anonymous Coward
    Paris Hilton

    Gwan then

    Who needs a CICS programmer? This COBOL debacle is nothing compared to what will happen when that goes wrong for someone.

    Fair enough, it's not a language, but the principle is the same. Most of the world hasn't even heard of it. Most would assume that something computer related that's almost 40 years old must be dead, but that's just the same sort of breathtaking ignorance shown by modern PHBs (including el Governator) when it comes to "Legacy" stuff.

    I know I'm preaching to the converted here, but ask any of your nearby PHBs if they've heard of it, or if they know what Microsoft's actual software market share is in terms of cashflow and you'll realise they really just don't have a clue (To save you looking it up, It's around 10%, most people will say 80% or more)

    Paris, because she's the kind of PHB I could live with - easier on the eye than most, and dead easy to baffle...

  23. Bronek Kozicki

    @Andrew Ducker

    "Who pays to rewrite those systems? And why would they, when they work?"

    I'm glad you asked. Who pays the guys maintaning the system at present? And does the system really work, given the ... issue ... raised in the article?

    I'm pretty sure that IBM would be more than happy to do work for $30bln, but I'm also sure the work can be done much cheaper. And faster.

  24. Mark Dowling
    Gates Horns

    Shouldn't this be a great project for Microsoft to demonstrate it's migration skillz?

    Oh, but they tried that with Hotmail and that didn't go so well...

  25. Xykon
    Thumb Up

    Excellent

    My rate for COBOL is double that for Java etc so no complaints from me if someone wants to pay me for it.

  26. Adam Foxton
    Coat

    Must.... Resist.... Temptation.....

    No, you know what, I know a bit of that language. I'm off to start a legacy-systems consultancy firm called the Lords of Cobol!

    It's the ones with the viper pilot badge on it.

  27. Arnold Lieberman
    Jobs Horns

    Crufty design

    In a former life, as a COBOLer, what struck me was the way all literal fields were hard-coded into the reports. This meant that when the company changed names, we had to go through every single report and amend the appropriate PICT fields. Could have all been fixed with a few lines of code to read such details from a file at the start of a batch run.

    I suspect California's payroll is held on ISAM files, which should be easy enough to patch en masse, with a bit of effort. There's probably even an ODBC driver available! Sounds like the old-timers and their managers have colluded to drag their heels on this chage. Can't think why.

    Steve would be more than happy to sell California some "modern" cr@p to replace the lecagy cr@p.

  28. RRRoamer

    @AC

    "I liked Y2K... Much panic... Much $$$ (Well £££)"

    I didn't. You had NO IDEA how disappointed I was when not one single system went down. Hell, my lights didn't even so much as FLICKER!

    How dare they get us all worked up expecting a great show and then deliver NOTHING!

    Bastards.

  29. Steve Anderson

    COBOL.net

    Go on Microsoft, you know you want to get a piece of the COBOL action. Roll out COBOL.net...

  30. Brian Watson

    COBOL?

    Man, that takes me back.I had a buddy at college that wrote a COBOL compiler in COBOL. The listing was about 6" thick.

    COBOL - The real meaning of the acryonym is "Completely Overrated Bastard Of a Language"

  31. Anonymous Coward
    Anonymous Coward

    Nowt wrong with COBOL

    Like any other language it has its weaknesses (maths) and its strengths (compute). The problem with most of the older code is that it was programmed back in the day before things like commenting, frameworks and standards were commonplace.

  32. Anonymous Coward
    Stop

    How much!?

    A replacement system for $30bn? 10,000 programmers at $1 million p.a.? Before packing my bags to head on over there I checked the original article and re-thought my plans when I read it was only $30 million that was quoted.

    Maybe that's the tactic that the IBM sales team should have used...

    "New system? That'll be $30bn."

    "How much!?"

    "OK, we can do it for a 1000th of the price."

    "That's better. Where do I sign?"

  33. RW
    Thumb Up

    COBOL

    Dijkstra's comments anent COBOL are an exaggeration. It's quite easy to write structured code in COBOL merely by showing a little discipline in your coding style. Indeed, the COBOL got rid of the infamous "go to depending on" construct quite a while ago, though it left the "go to" intact.

    In saying this, I am not claiming that all those billions of line of COBOL code are structured: in my working days I saw some horrific tangles of COBOL spaghetti code, but that was equally true of all the older languages: Fortran, PL/1, even Algol.

    It wouldn't surprise me in the least to read that the backends of some modern online systems have been written in COBOL.

    AFAICT, the languages most often used today embody their own very serious defects. The interminable issue with buffer overflows is due to the absence of built-in array bounds checking, and there are intricacies to the syntax of the C family of languages that make them prone to whole new classes of programming errors that can be extremely difficult to isolate.

    COBOL, by its very wordiness and its demand that everything be explicitly declared, precludes many such errors.

    No, I'm not saying that we should re-write everything in COBOL. But please don't think that the current generation of programming languages is the end all and be all. I will make a possible exception in favor of Ada, but who uses Ada?

  34. Alan W. Rateliff, II
    Paris Hilton

    Conan vs COBOL

    The next "Red Sonia."

    So, how many people who know some COBOL are going to throw in their application? I did COBOL in high school and college around the time of the Y2K threat. I still have some of my books from classes, and even bought some others along the years. Sadly, I even dust off my COBOL skills once in a while by firing up RM*COSTAR in CrossPC on my Amiga.

    That's a true story, by the way. But closer to reality, I know at least a couple of people who have done COBOL professionally recently. One of them worked for ACS, which I believe is a big enough company to do work for the SoC.

    Paris, dusting off her skills just in case they're ever needed.

  35. JeffyPooh
    Happy

    Even still...

    ...that's much much better than SAP.

  36. Unlimited

    @Bronek Kozicki

    Well, in this case, it appears there are no guys maintaining the system at present.

    "the only ones who can make the changes - part time retired COBOL programmers - were among 10,000 employees laid off as part of the cuts."

  37. Mark G Forbes
    Thumb Up

    Insane pricing gotchas

    Many years ago, a customer wanted us to include a new feature in our software. We had plenty of other things to work on that were higher priority, so we put him off. But he was persistent, insistent and consistent in his request. Finally our company owner quoted him a price just to shut him up.

    "Forty thousand dollars...that's the fee for your custom feature request."

    (Ha! That'll keep him quiet!)

    The customer pulled out his corporate check ledger and wrote out a check on the spot.

    "Guys? You know that feature we've been back-burnering for the last year, for that one customer who kept asking? The one that's less important than anything else we're doing? Guess what..."

    Maybe IBM figured they could avoid the job if they quoted a high enough price?

  38. Neil

    Cobol

    Back in 1998 I was at college and the C teacher had a breakdown just as we were about to start the 2nd year. So after a fun year of Pascal with a view to C++ in year 2 it was announced we had to learn COBOL instead.

    It was the dullest year of my life. Anyway, if a program is written well enough to run for 30 years then credit where credit is due. The problem is that nobody was forward thinking enough to suggest a change before they realised it was too late.

  39. Anonymous Coward
    Anonymous Coward

    Re: How much!?

    Umm, yes. A big slip of the keyboard / brain here. Correct figure is 30 mil.

    Drew

  40. Terrence Bayrock
    IT Angle

    Only if you really, really. really want the job

    This is a standard ploy for IT (well, not only IT) firms who don't want the specific contact but still want to get future pork, er, contracts from an existing customer.

    You give a ridiculously high figure to undertake the project to effectively tell the customer that it's an expen$ive favour .

    If you get the contract, well, you're in the money (unless you are totally incompetent). If you don't get the contract, then you at least "showed interest".

  41. Herby

    Not THAT difficult to "adjust" payroll

    Let's see. Write a "temporary" program that just spits out checks for the minimum wage and hold the "real" payroll stopped for a while. It seems pretty simple to me:

    printf ("Your weekly paycheck is: %5.2f dollars\n", 6.55 * hours);

    Modifications for minimum wage at a fee.

  42. GF
    Thumb Up

    Term debug?

    I believe Admiral Hopper also coined the term "debugging" and "bug" in the late 1940s in relation to computing.

    She does get around, doesn't she...

  43. Jonathan McColl

    What's COBOL got to do with it?

    I've been paid by computerised systems for decades now, and all of them were configured to allow pay changes up and down. Has California had to reprogram their kit every year for annual pay rises?

  44. Anonymous Coward
    Paris Hilton

    Hmm... maybe theres gold in them thar hills...

    Well, I speak COBOL, being over 50... In fact, I think I invented recursive COBOL, where a program can actually call itself with new variables, and then return up the stack to to caller.

    But, would I want to work for an administration that is likely to cut my contract fees if I made it work? Not so sure...

    Paris, because I'm sure she could do herself recursively....

  45. Anonymous Coward
    Anonymous Coward

    COBOL- is not the only issue

    The pioneering languages pre-1990's are still strong and will remain so until someone chooses to not support some particular hardware platform change, that's the reality of it.

    I was in the UK prior to Y2K and ASM/BAL at insurance firms was all the talk about how to find enough bodies to fix it back then. I certainly don't think that after Y2K they decided to toss MORE money at it for rewriting to 'modern' languages. Corporations don't think that way so long as it works they would rather buy faster hardware. There are entire sets of software and businesses that do nothing but link legacy systems to modern systems creating more user friendly interfaces with virtual teletype terminal services running underneath.

    How many so-called modern languages along with their many variants and plug-ins and extensions will be viable 5 or 10 years out? Will the tools still be available to support them? The platform transferable to new hardware? This is why so many go to packaged systems where that problem is someone else's problem.

    Anyone want to update (not rewrite) a ColdFusion or Delphi website?

  46. Christian Berger

    At least it's not C

    At least it's not C, just imagine things like integer overflows in a payroll system. Or imagine a buffer overflow because of a to long name.

  47. Ian

    2 digits?

    COBOL wasnt the problem, it was the cost of memory when the systems were written, 2 digits for the year saved you some space and when you had several million dates in your db it added up. When I were a lad working on Honeywell Bull DMIV systems we stored dates as numbers, formatted YYMMDD and used simple greater than, less than tests with home rolled date routines for anything clever. Yes, I am grey and bearded.

  48. Anonymous Coward
    Happy

    COBOL vs. Terminator

    Actually, as every geek who ever freeze-framed the first movie on video has known ever since the '80s, the T-101 was programmed in 6502 assembler[*]... none of that poncy HLL stuff for a low-down dirty killing machine like that!

    [*] - and had several alternative possibilities for how to respond to that janitor beyond "Fuck you, asshole"....

  49. Anonymous Coward
    Dead Vulture

    So say we all

    All that and no mention of technology debt?

    Setting aside the fact I'd eat a bullet before writing another line of COBOL code, the reason to get rid of it is really because stuff like this keeps happening, and it will keep getting worse and more expensive every time it does.

    Pay someone to make something you can control/maintain/upgrade easily now, or spend much more than that maintaining it over the next decade or two.

    And... For me, and for the children, please, kill COBOL now. For a brighter tomorrow.

  50. Seán

    Nothing whatsoever wrong with it

    CoBOL is a fine language for what it's used for . What exactly would you replace it with? C which is pure garbage by comparison or VB which is a joke. If it's used for business usage which is payroll accounts stock handling etc then there is no need for anything except CoBOL. I suppose most of the people chiming in have as much of a clue about CoBOL as they do about Forth.

  51. CLIFORD CRAIG
    Thumb Up

    COBOL Forever

    I know over 8 languages and COBOL is one of my favorites. It can be structured and self-documenting if you have any discipline at all.

    I cannot believe that it would take so much money to change the payroll. What do they do when an employee is given a raise?

  52. Alan W. Rateliff, II
    Paris Hilton

    @All who want to replace COBOL

    Bollocks, I say (did I use that correctly, my Limey friends?) Anyway, replacing COBOL applications is really a bad way to go. It is a robust and sturdy language, point obvious by the shear number of applications which still run today (after minor modifications for the 2000 change.) It REALLY IS an easy language to learn and use, once you get used to the draconian restrictions on indentation and essentially writing your programs like you're writing a book (OPPP!)

    Best of all, it has not required multiple iterations and revisions over the years to deal with silly things like "a remote attacker can take control of your computer" or "a local user may elevate privileges." Yup, no COBOL-pwnage around these here parts.

    I see how this really would be a good time for some consulting firm out there to have someone on staff who knows COBOL, even if just as a hobby*. I hear from people in various industries about all the legacy applications which still run regularly, and how so many of the applications would benefit from some added features or reworks. Hell, with the right tools a PFY fresh out of university (college, for my fellow Yanks) could take on this job and win a Presidential Fitness Award in the new and special category of saving a state's ass with 1337 C0B01-f00.

    Anyone search the State of California web site for a job opening requiring said foo?

    Paris, requiring special-foo, and she did the People's Poet.

    * I wasn't joking in my last post. When I had more time, I had a sorry habit of taking our class programming assignments and coding them in other languages as well: COBOL, ARexx, PHP, and sometimes BASIC. Mental masturbation, I suppose.

    Paris, mental... oh, never mind.

  53. John F***ing Stepp

    I once wrote a long COBOL program without using if then.

    Or goto for that matter. Thirty pages of dense flowchart; took longer to write that than the program.

    Why? Well, I was told it was impossible.

    COBOL had some fun things that you could do; like playing music on the big line printer.

    (All of my programs did the rumba; drove the shop nuts.)

    But I was glad to be able to stop writing COBOL code; and PASCAL which I actually did hate worse than any other language out there.

    And during the Y2K nonsense I hid under a rock or something.

    (COBOL? No, some other John Stepp; I no speeka the picture clause.)

  54. Anonymous Coward
    Thumb Down

    do they even have the source code ?

    Believe it or not, it is possible that state of CA does not have the cobol source for some of the binaries they are running. Or they are not exactly sure which version of source produced the binaries they are using.

    Source code control and library hygiene are recent innovations (compared to cobol) . Much of the code was written by itinerant consultants, long gone and untraceable.

    Many mainframe shops STILL do not use source code control.

    The first generation of cobol programmers are not retiring, they are dead and buried decades ago. The second and third generation are retiring and laid off.

    And a rewrite with "modern" languages is out of the question. Prolog, lisp and ascii white are insufficient to parse the policies of the great CA bureaucracy. The cobol is pure spaghetti because the policies are pure spaghetti.

  55. Anonymous Coward
    Happy

    six figure salary

    I luv my six figure cobol slary

  56. Jim Noeth

    Nothing wrong with COBOL

    There's nothing wrong with COBOL, it has gotten a bad rap because schools and vendors wanted to push their 'new magic solutions'. Sure it's a little wordy, but, having programmed in COBOL for about 30 years, there's little I've found that I couldn't do with it. I also regularly program in Java, C, C++, C#, Perl, assembler (several different architectures), each has their good points and bad points. If I were to write a Payroll system, COBOL would be the language of choice for me. If I were writing a compiler, the C would probably the language of choice.

    As to all that 'spaghetti code', imagine a system written in any language that had been around for as many years as some of these COBOL systems, they'd look like spaghetti as well. Also, since much of the code was written when computing resources were very expensive, hence things like 2 digit years.

  57. Christoph
    Unhappy

    What is El Reg coming to?

    All these comments and nobody's done the 'Load of Old COBOLers' joke?

  58. Tom Metzger
    Thumb Down

    COBOL isn't really the problem

    Any system that old would be a problem. Of course the thinning of the COBOL programmer ranks will make them more expensive over time, making rearchitecture (replacement) more attractive.

    Of course the estimates people are throwing around are criminal. A shameless transfer of government tax money to greedy corporations. We're on record offering to replace the system in question for 1/10th of the quoted cost, and we're able to do that because we have a unique approach. If you're interested: http://www.maketechnologies.com

    Or if you want the "gloves off" side of the company: http://gotlegacy.net

    Tom

  59. Anonymous Coward
    Paris Hilton

    The plot thickens?

    You know the pay scales are not hard coded in the COBOL program...

    They may be in a database or a data file but it would be dirt stupid to put it in the code (and most the implementers in this environment were anything but stupid.)

    I agree with the other posters that this is just being used as an excuse not to do anything.

  60. Adair Silver badge

    Money for old code.

    I'm with the `CoBOL is a fine language for what it's used for' and related views. When I did my COBOL training back in the 80s writing a payroll program was one of the exercises. Sounds to me like there's plenty of BS and smoke being used to blind the bean counters, let alone the Governator. After all there's folk's beer money at stake!

  61. Anonymous Coward
    Anonymous Coward

    where's the obol?

    @Herby, er, you seem to be coding in C?

  62. Russell Jackson

    Decreasing salaries

    The problem isn't simply decreasing salaries; the problem is calculating back pay and taxes on said back pay after reinstating everyone's salary in the future. The code to handle that scenario simply isn't there. Doing it all by hand is obviously not realistic.

  63. Anonymous Coward
    IT Angle

    You stupid little arse ...

    Anon Coward wrote: "Get rid of that legacy crap."

    That “Legacy Crap” will be running banking systems 40 or 50 years from now just like it has since the late fifties and early sixties. Without a DAY of downtime.

    You people know NOTHING of maintainable, trouble free code -- which is why every major software project for the past 20+ years has been an increasingly spectacular series of failures.

    I too love my 6-figure COBOL salary and I have really very little to do to earn it. I just need to understand cause/effect and the first principle of software engineering: if it ain't broke don't fix it.

    LEARN how meaningful and productive software is written before “criticising” it. Not that you are qualified remotely to do so.

  64. Anonymous Coward
    Joke

    OK - who is the wizeass that ..

    hardcoded all the salary scales into COBOL.

    Oops we fired him ....

    .

    .

    .

    A few days later ...

    Voice of COBOL programmer - I told you - I WILL BE BAAACK!!

  65. Mike Hocker
    Boffin

    Complexity

    The complexity of making the change comes from the vast mass of bureaucratic rules and regulations that are encoded in the payroll software.

    You can't just cut everyone by a percentage-- the floor is usually the minimum wage, or sometimes 0. Changing a person by a percentage may cause a negative payroll for someone having to fork over child support (for instance), or time shifting weeks, or whatever. The result might also go below a cut line for medical coverage eligibility (try surprising someone with that just before some major medical work).

    Most cases are simple, it is the boundary cases that snarl up the change and take the vast majority of the conversion time. There are legal requirements, contractual requirements, common sense boundaries (how long will you work when you have to pay each week instead of being paid?), handling people who have allocated 401K sums in odd ways, and on and on and on.

  66. Martin Usher

    Its political

    Arnauld is throwing a fit because of a budget impasse but since his hissy fit is likely to hurt a great many people there's a lot of people dragging their feet. They've all but said to him "You want to change the payroll system, do it yourself".

    The other reason to drag their feet is that once the budget is set up then they'd have to change the code back again.

    COBOL may be old fashioned and clunky but its very reliable. We tolerate failure on a PC because it doesn't really do much except inconvenience individuals. In the real world failure is not an option. Part of this would be a very slow code change cycle -- hours to change the code, weeks to test it. (Incidentally, there's still people out there who program in IBM assembler....... I met one a few weeks ago.....amazing.....)

  67. Dick
    Flame

    100% Bullshit, 100% Politics.

    Someone needs to ask John Chiang how the system that's supposedly incapable of this reduction manages perfectly well to process nice increases in the salaries and benefits of all state workers each year - which is, of course, part of the underlying budget problem.

  68. Neoc

    I don't get it.

    I don't get it... there are several companies out there that provide ready-made enterprise-level solutions for payroll (disclosure: yes, I work for one - we provide various software packages and tailor them to the clients' needs). It wouldn't take $30bn (or in fact $30m) to extract the data from the old COBOL database, buy new hardware and a payroll application and load the data on the new platform.

    The "Governator" should point that out to the state's IT staff and then ask again how long they think it would take to fix the payroll codes.

  69. Anonymous Coward
    IT Angle

    @ Martin Usher

    “COBOL may be old fashioned and clunky but it's very reliable. We tolerate failure on a PC because it doesn't really do much except inconvenience individuals. In the real world failure is not an option. Part of this would be a very slow code change cycle -- hours to change the code, weeks to test it.”

    Nope. It takes a day (or less) to re-write entire COBOL subs -- I do it. Its a simple pleasure.

    It IS clunky and ever-so-dead-old-fashioned BUT WHO CARES? It actually works especially if you have a clear idea of what the fuck you're trying to say/do.

  70. Anonymous Coward
    Stop

    dont blame cobol

    ...blame system design and politics.

    I was a COBOL A/P for 5 years.

    (These days I do J2EE so don't start with the "dinosaur" cracks).

    And the article isnt wrong. I was involved years ago with a (household name) US retailer. I kid you not we had a whole TEAM manually rewriting the business logic of our payroll system every year due to changes made by federal, state and even municipal lawmakers.

    It was feckin crackers. We did the best we could, eg things like tax rates in the database and not hard coded. But how do you get logic like this...

    If employee lives in area A but works in area B but spends more than 60 days per year in area C but in married to a woman residing in area B and has children in school in area D and healthcare in A and is in a union and its raining and.....

    Especially in the Eastern (smaller) states where its common practice for people to live/work/deal across state borders. Now every year each state would bugger about and change all its rules. And each year our team would swing into action trying to get the whole lot changed and tested before the end of the tax year. Then after the batch run everything would change all over again.

    You would have the same if the thing were written in C. Perhaps less so for C++ or Java but not by much.

    The mad thing is, they could use SAGE or SAP or something if lawmakers would just do things easily and elegantly but they dont. Instead the US has all these special interests, the result being overlaps in jurisdiction, conditions, criteria and so on that are basically impossible to implement without a gigantic nested "IF". (A conditional what exists en every language I have used). The poor programmers are caught in the middle.

  71. Frumious Bandersnatch
    Joke

    op-oinionated

    truly transcendent that... loved the pic of an obviously worried governator..

    ADD ONE TO TWO GIVING THREE

  72. david Silver badge

    It's not 6 months to change the code....

    It's 6 months to put the change request through IT.

  73. Jean-Luc
    Paris Hilton

    Internet rumors 101

    Somebody typos $30bn instead of $30m.

    Then all the presumably clever posters pick up that particular ball and run with it and have lotsa insightful opinions about those $30bn.

    Guys, ever heard of double-checking facts before engaging tongue? 30$bn is on the order of California's state budget, for crying out loud.

    Paris, who is cleverer than all but the original typo guy (who made an honest mistake) and the guy who caught him.

  74. Joe Tamai

    COBOL pronounced bread and butter

    I've worked in COBOL for 40 years and there is not much you can't do with it. Still developing tons of software using it. Also did CICS and IBM BAL assembler.

    One thing I have noticed about these obsolete dinosaur languages that the young pups want to abolish: NONE of the IT disasters you hear about are written in these languages. And much more software is written in them than in the C like languages,

    Yeah, they are not much fun like java and all those. But, young fellas, pay is for WORK not having FUN grinding out code. That was a lesson us dinosaurs learned right off.

    Also business apps should be written in a business like language that even the original requestor can read and understand. The bracketed gobbley gook that is the C like languages is indecipherable to anyone but programmers.

    Well, Python excepted because its my favorite of that kind because it is the clearest.

    What everyone today seems to overlook is that software is a very valuable asset and should be as easy as possible to maintain. It WILL be modified and have functionality added if it is any good.

    And my COBOL programs are NEVER spaghetti code. They are so clear any fool can understand them with copious comments in case there are any questions.

    Report archive programs I wrote 20 years ago still run every day in Europe, Asia, America and have never gone down even once. Well, maybe once, but that's it.

    It is the skill of the artisan that determines the end result not the tools used.

  75. Anonymous Coward
    Anonymous Coward

    Re: COBOL.Net

    There already is one. NetCOBOL.Net from Fujitsu in the USA, along with a whole raft of emilators (NetCICS, NeoBatch, etc) that let you lift an IBM Mainframe CICS/COBOL installation and move it into a Windows environment unchanged. You can even take your ISAM files with you.

    As for managed change, I'm sitting here on my last couple of weeks of a contract, the final VME site here having migrated "successfully"[1] earlier this year. We just got a call from another former client who moved off last year: "We urgently need to read this Mainframe tape on our Unix box". Best laugh I've had in weeks.

    1) The usual sorry migration tale. Replace a 90 MIP VME box with a server farm. Get something that runs so slowly that people are working at 30-50% of their previous efficiancy at best. Spend enough money to buy a small country in the process.

  76. Greg

    I KNOW COBOL!

    I got bored one Christmas a few years back, so I taught myself COBOL.

    And I'm only 22, so I'll be around for a few years yet.

    Perhaps I should give the Governator a ring? :-) Make meh some moneh!

  77. volsano
    Stop

    Boycott COBOL now!

    You want to get rid of COBOL and all that legacy crap? Then simply boycott any system that uses it - anywhere in its front end or office back end.

    That'll be most banks, pretty much all financial transactions (loans, insurance...), many hospitals, local authorities and a lot of airlines and many airports.

    Also most road vehicle manufacturers, and the odd website or two.

    Let's stop asking other people to get rid of COBOL and set an example. Remove it from your life today.

  78. Jeff S
    Dead Vulture

    Cobol is far from dead,

    Anyone working in the financial services industry will know how widespread the use of Cobol is. From my experience the majority of the worlds large insurers all run on a Cobol system. Those that have progressed from black and green onto fancy web front ends are stiull running their business processing on a cobol based system. And it's not going to change anytime soon.

    As has been said, why change it when they work well ? Cobol systems structured well and to some form of standard should be easily readable and maintainable. I'm guessing this payroll system aint one of those.

  79. James Prior
    Thumb Up

    Young COBOLers

    I'm a COBOL programmer and I'm only 28 - and yes I worked on the Y2K problem for a local council at 18.

    Only because the college I went to still used COBOL as the higher level language (Pascal in the first year) until 1999 when they switched to VB.

    At the time most of the ATM backend systems used COBOL and I'm sure some of them still exist so we do have some demand still.

    So how do I apply for my US work permit?

  80. Sooty

    stil don't get it

    Any reasonable competant* developer should be able to learn a new programming language easily. I've never used CoBOL before but having been sent the source to a program could quickly and easily port it to another language. it's practically written in English!

    It may take longer to do, but it's not an imposssibility. Although it does raise the question of why code changes are needed just to cut someones salary. Surely any payroll system would have been designed from the start to cope with people having their salary cut? All of the salaries should be held on a database, and all of the code to handle back pay etc, should have been put in when it was first built so the database update should be all that is needed.

    *Of course, whether or not reasonably competent developers are being churned out of the universities, or just people who know how to code in <insert language of the month> is another matter.

  81. amanfromMars Silver badge

    Money, money, money ...... helps the Fed go down

    "I too love my 6-figure COBOL salary and I have really very little to do to earn it. I just need to understand cause/effect and the first principle of software engineering: if it ain't broke don't fix it." .... By Greg Fleming Posted Thursday 14th August 2008 21:22 GMT

    Greg Fleming,

    Surely you do not think that it isn't broken, and the COBOL Code not Cracked for Remote Proxy Administrative Use/Philching? Why do you think the Banks have Lost all their Money and Credibility to the Sharks in the Private Equity and Sovereign Wealth Markets who have Effectively taken over the Federal Reserve Money for Nothing and the Chicks for Free System, rendering them as Eunuchs in the Harem.

    And as for the Sharks, well they just love their 9-11 figure Funds and unlimited Special Access Programs to All Future Sums. Wake up and Smell the Coffee. IT's Java at ITs Best.

    The problem is, of course, that the Bankers have no Idea how to Fix IT with IT for they cannot See what Needs Fixing although they are Bound to Realise that something is Seriously Wrong because they are Losing Wealth, Hand over Fist, whilst Others are gaining IT. That suggest a Lack of QuITe Necessary Basic Advanced IntelAIgents Training aka tasty BAIT and/or a Failure of their Intelligence Networks and/or Both with More Shenanigans and Pain/Ecstasy to Come and On ITs Way.

    Or would you posit that the Present Headless Chicken Routine is their Masterful Plan?

    You'll have to spell out the Wisdom to me in that one, please, as it completely eludes me.

    These are Popular Prescient Words of Wisdom ...... http://tinyurl.com/5ln4s5

    I work all night, I work all day, to pay the bills I have to pay

    Ain't it sad

    And still there never seems to be a single penny left for me

    That's too bad

    In my dreams I have a plan

    If I got me a wealthy man

    I wouldn't have to work at all, I'd fool around and have a ball

  82. Anonymous Coward
    Anonymous Coward

    Fashionable nonsense

    Many of these comments reflect one of IT's worst perennial problems: the ridiculous obsession with fashion. The very first comment in this thread (by our old friend AC, of course) was "Get rid of that legacy crap."

    Why? And did he mean "it's legacy and it's crap", or "it's crap because it's legacy"? I strongly suspect the latter. This is the know-nothing, "we're young so we know best" attitude exemplified by Tony Blair with his dismissive comments about the Victorians (who actually invented most of the "modern" stuff he is so proud of).

    COBOL, as its name shows, was invented to handle routine business programs such as payroll and invoicing. It's specifically designed for doing calculations with money, keeping records, and issuing bills and reports. And it's very good at that. People who become programmers (or IT directors) in search of fun, intellectual stimulation, or creativity, need to remind themselves that the purpose of business is to make profits; and the purpose of government is to serve the citizens as efficiently as possible. COBOL does both these things rather well, which is why more business software is written in it than in all other languages put together. The amount of COBOL in active use has doubled since 1990 - not exactly a sign of a dying language.

    If I could do one single thing to help the IT industry and its users worldwide, it would be to remove the scales from their eyes and let them see clearly the difference between something that's useful, and something that's "new and cool". Other things being equal, the new "technology" always costs more, takes years to become stable and mature, and forces everyone into expensive training and re-equipment. (Which, of course, is why so many people love it).

    All together now: "What is the definition of a legacy system? ONE THAT WORKS!"

  83. Anonymous Coward
    Anonymous Coward

    APL, anyone?

    You wrote: "Many abandoned COBOL in favor of more esoteric and - some would say - impractical languages such as Lisp and Smalltalk."

    Not just COBOL...

    A few years ago, I was told by a programmer at a major news content-provider that they were rewriting their query engines because they could not find any APL programmers, or even recent graduates willing to be paid to learn it.

  84. Henry Cobb
    Unhappy

    The world's banks run on COBOL

    And shutting down the world's banking system would hurt how exactly?

    It's not like the credit markets are actually working anymore anyway.

  85. Anonymous Coward
    Happy

    the usual

    people: we want more for schools - governator: check

    people: we want more for roads - governator: check

    people: we want more for health - governator: check

    people: we want more for pensions - governator: check

    people: we want more for parks - governator: check

    people: we want more for prisons - governator: check

    people: we want more for greenies - governator: check

    governator: we need more tax money for all that - people: OH NOES

    bless mother cobol, 2nd language i learned after pl1; but why wouldn't the pay rates just be in a bunch of cards to feed in? ha ha ha; arseholes

  86. Doug Lynn

    30M not 30B dummy! Thats the amount IBM wanted

    15B deficit, 30M for IBM to replace it.... Duh!!!! Learn to read...

  87. Bob. Hitchen

    COBOL Rocks

    COBOL I started with back in 68 and none of the languages since hold a candle to it for business systems. Sure it could be improved but it produced efficient code that just carries on running and contrary to this report easily amended. It's written in English not gobbledygook. Most of the modern languages are crap and cost a fortune in implementation and maintenance.

  88. Dillon Pyron
    Pirate

    I'm avaialbe

    1978 grad, BS in CS. I still have my COBOL drum card. $350/hr. And yes, Mr. Hitchen, the code is obvious, as opposed to some of the C code I see cranked out these days.

    Now APL, there's a language.

  89. M Neligan

    @A W Rateliff

    I agree that Cobol has its attractions: close to natural language, no recursion etc. (thank you, Jim Inglis, Birkbeck '91) but I really want to add part of your comment to my collection of English "howlers": "It is a robust and sturdy language, point obvious by the shear (sic) number of applications which still run today". Thanks.

  90. conunstradamus

    COBOL

    on a keypunch. Now that's quaint laddie.

  91. Duncan Hare

    grudgingly, other manufacturers

    Bullshit.

    Burroughs was completly Cobol. Much more so than IBM.

    Noone in the BUNCH was grudging in their support of COBOL.

    IBM tried to replace it with PL/1.

  92. Ishkandar

    Comments on comments

    @RW - "but who uses Ada" - Babbage did, didn't he ?

    I know an office (which shall remain nameless to protect the guilty) which has loads of Core Duo PCs running XP connected to an IBM "mainframe" AS400 running RPG2 programmes outputting ASCII in 80x24 format !! The programmer who wrote the programmes buggered off after a tiff with the managing director; leaving behind *NO* notes, *NO* comments and *NO* indication of how the damn things work. And everyone dares not "fix" anything in case it broke everything else !!

    Legacy !! Tell me about it !!

  93. Einar Clementz

    It's not the language - it's the design

    An inflexible design can be implemented in any language. What would the comments be if the language of choice was Java or C++?

    I get scary when so many people forget this basic fact of an IT application.

    We easy start to shoot the player - not the composer. How many innocent get blamed? How fast do we loose our basic ability to think? Please wake up.

    -cle-

  94. Anonymous Coward
    IT Angle

    ADA

    Another great programming language, Air Traffic Control systems are written with it. It is fault-tolerant and self documenting.

    Can I seriously seeing myself putting my safety in an ATC system written, oh, say, in C or Java? No.

    Lots of people use ADA, actually. Again, you get handsomely rewarded for it because you are doing proper software engineering and building fault-tolerant working software.

    It isn't a fad. COBOL, ADA ... they just work and I'd never entertain doing serious work with much else, apart from assembler perhaps.

    Everything else is quite trivial and doesn't even fit into the same scale of rationality.

    I'd make it mandatory for everyone who calls themselves a programmer to be actually qualified in all three of the above. Then software fiascos would just disappear and people would get what they paid for. Once again.

  95. Bob. Hitchen

    @conunstradamus

    Yeah we used to use a manual key punch for card inserts in a Cobol program deck. Some evil operators liked giving the cards a shuffle if they didn't like the programmer. Odd thing is on a box with 90k of memory and 80M of disk it ran the whole Building Society accounts - go figure. It was one of the few times in my computing life that I actually saw a system that did something useful; in this case saved about 6 months a year overtime doing account books(passbooks) manually. Oh and that was Burroughs; we used symbolic or BPL for those more system orientated tasks.

  96. Ian
    Thumb Down

    Am I missing something here...

    I was taught COBOL in the late eighties, as I remember it is a procedural programming language, with some fairly simple data types and rather crude data access mechanisms. If someone who fancies themselves as a bit of programmer can't pick up the ropes well enough to be able to read and maintain a COBOL program, I'd seriously question their aptitude for the job. Can't the youngsters handle a bit of data access without SQL or a ORM framework? or can they not handle a system without a mouse, menus and intellisense? I don't want to knock COBOL experts, but it ain't rocket science. Next thing people will be telling me that no one can write decent assembler code any more.........oh, they can't?

  97. Anonymous Coward
    Anonymous Coward

    @ Ian

    "Next thing people will be telling me that no one can write decent assembler code any more.........oh, they can't?"

    Yeah. I can. Its how I started in 1979.

  98. Steve Welsh
    Happy

    Missing Nothing

    I originally taught myself to program computers by reading CoBOL source code. It was just a little office system, but I got hold of the source. I had been using the system for a while, and it suddenly came to me - "Hey, I understand what this does".

    There was not a code comment in sight, but it had been written in a self-documenting way - "GET_DEPOT_OF_ORIGIN" - guess what that call does.

    I'm with the 'if it ain't broke don't fix it' crowd, and also think that CoBOL is unsurpassed in what it does.

    I mean, 'C' pointers to functions - thanks but no thanks!!

  99. Tim Holmes
    Coat

    ADD 1 TO COBOL MAKING COBOL

    still awaiting the inevitable object-oriented variant. Nothing like an old joke...

  100. Basil Fernie

    @wayne tavitt

    Isn't that the point?..

  101. Anonymous Coward
    Boffin

    @Steve Welsh

    I'll point out that my c code is generally as readable a what little COBOL I have seen. It just requires the programmer to be intelligent, put in comments as they write the code and give sensible names to variables, functions etc. I'm very sure a bad programmer could write incomprehensible COBOL just as easily as incomprehensible C...

  102. Sandra Greer
    Boffin

    The mother of us all

    Before COBOL there was assembler. It was a bottleneck. I haven't written COBOL for more than 20 years, but it was a fine language for generating correct IBM or Univac Assembler (not the most efficient, but machines even then were faster than people in generating code). The data areas were accessible in dumps and debuggers (when we had them). Structured programming and extensive documentation of PERFORM A through A-EXIT subroutines gave COBOL some of the advantages of object-oriented programming without the disadvantages (the data remained in the "main"). Calls to separately compiled modules enabled reduction of single load size, while providing the easy maintainability of common code and parameters. Finally, IBM's CICS provided the event-oriented environment later seen when event-driven windowing was added to the various PC-type operating systems; it also anticipated the Web front end by off-loading the user interaction to a specialized front end management system.

    The side effect of mainframe implementation is that there was just one operating system and executable application to be maintained. Once tested on the Test System (we always had one), the code could be moved to production with some amount of confidence. Yes, it was slow to happen -- nobody wanted to mess up the current system. But stability was greatly enhanced, most of the time. Operating system changes occasionally caused problems, as did new versions of the compiler. One advantage was that we all used the same language and environment and could share our experiences without the fragmentation currently experienced.

    So this was not "dinosaur" stuff in the sense of lumbering extinct beasts. This was and is a parallel universe of software and hardware, as reliable as the birds who are the descendants of those dinosaurs.

    It wouldn't kill any of you to learn and appreciate COBOL as yet another tool, another compiler. CICS is much harder, of course; it's hard to describe, somewhere between Windows and Web programming. And database calls are in there too -- it isn't all ISAM, or tape.

  103. Sir Toby

    Re: Decreasing Salaries?

    "The problem isn't simply decreasing salaries; the problem is calculating back pay and taxes on said back pay after reinstating everyone's salary in the future. The code to handle that scenario simply isn't there. Doing it all by hand is obviously not realistic."

    Then the system was bad to start with.

    I've seen systems, designed in the late 70s and finished in the (very) early 80s (ok, they're not quite 30 years old) that could do things like this without a hickup.They were explicitly designed to do things like that. If an employer finds out, that he'smade a mistake and "underpaid" his employes for the last 3 years would have a serious issue rectifying this problem. A good payroll system will "notice" backdated salary changes, recalculate EVERY payroll cycle (sure it'll take some time to do) and come up with a pay slip that contains all the changes and adjustments, incl. tax, pension payments, health care and whatnot.

  104. Anonymous Coward
    Anonymous Coward

    I like COBOL

    COBOL is a cool language. A bit wordy at times, sure thing, but the wordiness has its advantages too. Look at a completely undocumented piece of C code, somethink like 2K loc, and then look at some COBOL code that does the same thing. Now which of them do you think is easier to understand? Of course it is a pain in the neck to

    Most people who bad mouth COBOL base their "criticism" on hearsay and things that have been eliminated since COBOL 85, in some instances even COB 74. The bad reputation of COBOL is almost solely based on the Y2K problem, the reasons for which have been pointed out numerous times here. Guess what, take a look at how many UNIX systems are ready for the "UNIX date" issue? Well? It also stems from a time, where people simply didn't realise their ideas might be used way beyond the "expected" lifecycle. Hey, come on, Windows 95 even crapped out, because there suddenly were CPUs that could do things faster than expected (AMD K2 "issue"). Mistakes were made througout the entire industry and some even after people should have realised they were wrong.

    A "nice" annecdote: Back in 1990 or so, we started writing a business application in COBOL. In the very early stages of development, I suggested to my then supervisor, that we make all date fields 8 instead of 6 digits. His answer was: "Y2K is 10 years away. Nobody will use this software by then!". Needless to say, the softwarewas canned by the end of 1999 because it was way too expensive to make it Y2K compliant and all clients using the software were left in the rain. All Y2K was, was shortsight on behalf of those, who should have known better.

    You can do (almost) anything in COBOL. IIRC the Micro Focus COBOL compiler was mostly written in COBOL...well, I wouldn't go that far, but a solid business app, I would write in COBOL. Even today. Why? Because COBOL was made for it, because I can't recall buffer overflows in COBOL apps, because they don't crap out. How many of your C, C++, C#, JAVA, VB, Delphi and who knows what programs, will still run in 10, 20, 30 or even 40 years? Well?

    All languages have their pros and cons and some are better for certain purposes than others. Would I want banks to run systems written in C? No thanks, not with my money involved. One buffer overflow, all gone!

  105. Anonymous Coward
    Anonymous Coward

    incomplete info

    Setting aside the "replace COBOL" foolishness in this thread, the actual business problem here is much more complicated than the article suggests.

    1) There are over 200k employees, which puts the State of California into rare company. Your crappy little payroll system, designed to work for small businesses? Yeah, not going to cut it in the big leagues. (There are fewer than 20 companies on Forbes list with this many or more employees.)

    2) This is not a pay cut. Repeat that after me: "this is not a pay cut." This is pay deferrment - the system needs to calculate their pay, but only deliver the equivalent of federal minimum wage, tracking how much of the rest will be backpay after the budget passes.

    3) This is not an across-the-board change. Certain categories of employees are exempt, certain categories are receiving no pay at all (appointees, certain types of professionals, etc.). These categories are somewhat arbitrary, and do not currently exist in the payroll system (or anywhere else).

    4) The $30M? Not only was there a typo of a few orders of magnitude, but that was not to replace this system, but a 'similar' system. Don't know what it would take to replace the state's payroll system, but, having worked on other large-scale systems, I'm pretty sure that it would be a multi-million dollar system. The complexity of the system reflects the complexity of the state's payroll - thousands of employees, multiple unions, different types of 401k plans, etc.

    Talking about how easy you think this would be doesn't make you sound like a 'real programmer' - it makes you sound like a kid with no experience working on large projects.

  106. tony trolle
    Heart

    if its was

    If COBOL was a car it would be a old series 3 Landrover.

    Fun to use for a while but not every day.

    Very bullet proof but not much power.

    People smile when they see it.

    Very nice examples cost money.

This topic is closed for new posts.

Other stories you might like