Slashdot Mirror


Should Banks Let Ancient Programming Language COBOL Die? (thenextweb.com)

COBOL is a programming language invented by Hopper from 1959 to 1961, and while it is several decades old, it's still largely used by the financial sector, major corporations and part of the federal government. Mar Masson Maack from The Next Web interviews Daniel Doderlein, CEO of Auka, who explains why banks don't have to actively kill COBOL and how they can modernize and "minimize the new platforms' connections to the old systems so that COBOL can be switched out in a safe and cheap manner." From the report: According to [Doderlein], COBOL-based systems still function properly but they're faced with a more human problem: "This extremely critical part of the economic infrastructure of the planet is run on a very old piece of technology -- which in itself is fine -- if it weren't for the fact that the people servicing that technology are a dying race." And Doderlein literally means dying. Despite the fact that three trillion dollars run through COBOL systems every single day they are mostly maintained by retired programming veterans. There are almost no new COBOL programmers available so as retirees start passing away, then so does the maintenance for software written in the ancient programming language. Doderlein says that banks have three options when it comes to deciding how to deal with this emerging crisis. First off, they can simply ignore the problem and hope for the best. Software written in COBOL is still good for some functions, but ignoring the problem won't fix how impractical it is for making new consumer-centric products. Option number two is replacing everything, creating completely new core banking platforms written in more recent programming languages. The downside is that it can cost hundreds of millions and it's highly risky changing the entire system all at once. The third option, however, is the cheapest and probably easiest. Instead of trying to completely revamp the entire system, Doderlein suggests that banks take a closer look at the current consumer problems. Basically, Doderlein suggests making light-weight add-ons in more current programming languages that only rely on COBOL for the core feature of the old systems.

235 of 383 comments (clear)

  1. Why not? by __aaclcg7560 · · Score: 3, Insightful

    Java is getting long in the tooth. Time for it to become the new COBOL.

    1. Re:Why not? by Slicker · · Score: 2, Insightful

      Java is far more likely to go the way of the dodo bird than is COBOL. COBOL is well-optimized for business data processing. It's a fine language. What does Java have over it? COBOL is many multitudes easier to learn, code with, read, and modify. Programming languages started getting more complex, harder to learn, and use starting with C++. And OO design and programming has failed in each and every goal for which it was originally proposed. I understand that most modern programmers have learned OO from the start and have difficulty thinking of problems differently but contemporary COBOL supports OO, too... just not often used.

    2. Re: Why not? by Anonymous Coward · · Score: 3, Insightful

      Cobol is a horrible business language. Unicode? No. Variable sized data fields! no.. Threads? No. Useful libraries? No. Integration with other components? No.

      Just because it can add and subtract doesn't make it great.

      It just makes it basic.

    3. Re:Why not? by Anonymous Coward · · Score: 1

      contemporary COBOL supports OO, too... just not often used.

      OO is just a paradigm, all languages supports it, even assembly.
      It's the programmer that decides how the code is structured, not the language.

      While I don't have any proof I suspect that you can't make a language that enforces a particular paradigm while still being Turing complete.

    4. Re:Why not? by Ace17 · · Score: 2

      > Programming languages started getting more complex, harder to learn, and use starting with C++.
      Just because a language is easy to learn doesn't make it easy to use.
      If this were the case, we would all be programming in Brainfuck!
      And it's a lot more easy to write a working program in Java than in C (hell, lots of Java programmers don't even know what a memory leak or a "link error" means)

      > And OO design and programming has failed in each and every goal for which it was originally proposed.
      Despite OO turning out not being the promised silver bullet (code reuse, natural design, ...), OO was a huge improvement and still is a huge success.
      If you're not convinced: https://www.quora.com/Was-obje...

    5. Re: Why not? by slack_justyb · · Score: 5, Interesting

      Holy shit dude. I'm a vet C++ programmer and the last three years mobile developer for warehousing company. However about a year before my current job, I worked in an exclusive AS400 shop. RPGLE, COBOL, CL, you name, it was still using the stuff from back in the day.

      The system was incredibly fragile and had insanely complicated builds with the labyrinth of binding directories, dependencies, the constant service program signature violations. Customers demanded new functionality and the system just had trouble keeping up. Old programmers would code crap like RPG still lacked arrays with abusing subfiles. They'd swear by using numeric indicators versus the new fancy types. Yeah, because IN73 being on tells me that I totally need to refresh the data on the screen. Eventually the company fired all of the RPG/COBOL programmers because they could never keep up with demand. They were short order replaced by an off the shelf solution and any new work was contacted out. I stayed on a few months more because I understood EDI and they needed someone to get that all setup on the new solution. Oh and it was Java based.

      Point though, you sound exactly like those old guys. OO over complicates crap and you don't need all that fancy stuff, blah blah blah. I work and coded DDS, SQL, RPG, and COBOL with those people for five years and I knew their mentality was just setting them up for obsolescence.

      The tech industry is brutal man and you've got to be a person keenly adept to rapidly adapt or you'll find yourself quickly no longer employed and lacking serious skills to find your next job. Two, besides myself, out of our group of nine found another job. Those two for jobs doing AS400 maintenance, took a pay cut for it, and RPGLE programmer with the State Government, smaller hit to the paycheck than the first guy. The rest of the group have nothing but their retirement savings to dip into. We all lost touch over the years but last I heard two or three more for jobs finally but had to eat the cost of moving elsewhere.

      Seriously, the only thing that kept me above water was that I had skills in C++ and Java. And since then I've picked up containers with Linux and node.js plus Python and some big data (Hadoop and shit) just to what I assume is stay current.

      That thinking of yours isn't a good kind in this industry. But I get it, when I worked with the AS400 folk, I had just turned 30 and so I was seen as the young whipper snapper etc. I had just left my last job of several years doing C++ and every gray beard (literally) there thought I was there to "think outside the box" and "shift paradigms" and really I was just there to mostly get a paycheck. Learning RPGLE and COBOL was fun but man those old guys they scoffed at any suggestion to get off a green screen or to make their monolith more modular. They would literally say, "stupid hipster just trying to make everything harder than it needs to be." And let me tell you, I didn't dress like a hipster.

      Anyway, I know, way more memory lane than anyone asked for, but seriously, those guys' thinking ultimately led to their firing. I've worked in a few development teams but not a lot so can't say with a lot of experience, but my gut tells me that had they been just a wee more open to change and newer technologies, they might still be working at that place.

    6. Re: Why not? by prefec2 · · Score: 1

      COBOL is a horrible language. Programs written in it are hard to be modified and modernized. Most companies do not even know what the software does in detail. Therefore, they are afraid to replace it with modern software. This has to do with architecture erosion and language features which do not hinder erosion. In addition it is not specifically good in business modeling. It is a mask oriented language.

    7. Re:Why not? by Z00L00K · · Score: 2

      OO is good for cases where you have use for multiple instances of known items. That is applicable to many solutions but it comes with a cost too. That cost is added overhead caused by inheritance since not every object uses all stuff it inherits, only parts of it - especially when the model is built by many persons that need a very general solution to a problem.

      Maintainability is also a problem when you get stuff that's obsoleted - it may be impossible to remove stuff from the parent objects because at least one inherited object still seems to use it. So code rot can be a problem in a system where people don't have full understanding of what was written a decade ago.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    8. Re:Why not? by DrXym · · Score: 2
      COBOL is an arcane, baroque and verbose language which serves a very singular purpose in business - processing records. I fail to see how it's "easier to learn" unless all you ever wish to learn in computing is how to process records on mainframe computers.

      If you learn computing because you want to write a game, or a website, or an application, or manage a database. i.e. if you learn for the reasons that 99.99% of people learn for then COBOL is unsuitable. Any general purpose language would be more suitable than COBOL for learning. If Java doesn't float your boat then there are the likes of C#, Python, Go, Dart, C++, Ruby etc.

      It's hard to see how you think OO has "failed" given that virtually every piece of modern software uses it implicitly or explicitly.

    9. Re: Why not? by Anonymous Coward · · Score: 1

      Example: If you have a language that doesn't permit you to pass functions as values, and doesn't support function pointers, then you can't code in the functional paradigm (using e.g. higher-order functions like map and reduce). That doesn't mean the language isn't Turing complete, as in principle you could use it to write an interpreter for a functional programming language, but that would be something very different. (I do however agree that people often have a too narrow interpretation of the paradigms though; for instance, you can do object-oriented programming in C by just making all functions explicitly have the object instance as its first argument. You can even group it together by putting function pointers in the relevant structs.)

    10. Re: Why not? by Anonymous Coward · · Score: 2, Insightful

      COHBOL? Common Horrible Businness Oriented Language?

      You're wrong about integration. On the legacy platforms that we're going to be interested in there was and is excellent inmtegration. I used to work on Data General and know that Cobol supported a number of DGs proprietry databases including heirarchical and relational.

      The context here is about maintaining old s/w verses replacing with new. Sure if you're prepared for ironing out all the issues with you're new s/w then go for it but the s/w here is reliable and still basically useful, it just needs maintenance.

      I've seen organisations replace old but good s/w with new s/w tht did the same job but was 'modern' and had more issues, it needed more resources and ultimately did no better a job.

    11. Re: Why not? by michelcolman · · Score: 2

      Duh, the first version of C++ was a precompiler that turned it into C. So yes, C is indeed quite obviously capable of supporting the OO paradigm. C++ is just syntactic sugar and optimization.

    12. Re: Why not? by Anonymous Coward · · Score: 1

      I've been looking for a copy of Glockenspiel C++ for years. Kind of a shame it looks like it's completely gone. :)

    13. Re:Why not? by Anonymous Coward · · Score: 1

      You're being silly, just because a language is Turing complete doesn't mean it's practical to do X in it. Go ahead and try to write a business application in untyped lambda calculus. Or even just simple calculations with integers. As for OOP, dynamic dispatch is hard to implement, especially multiple dispatch, and you won't do that casually in a language that doesn't support it.

    14. Re:Why not? by DrXym · · Score: 1

      There is absolutely no merit in claiming COBOL is "easier to learn" and I supplied valid examples. What COBOL may or may not have done 30 or 40 years ago is an irrelevance now. That masochists might be able to make it do is an irrelevance too. I could probably write a web application in Brainfuck, not that I want to.

    15. Re: Why not? by Ryyuajnin · · Score: 1

      Does COBOL have for each loops? Does COBOL have LAMBDA expressions? Does COBOL have Autoboxing? Does COBOL have Generics? Does COBOL have a vast population of developers? Does COBOL have AOP? Shall I continue?

    16. Re: Why not? by mrlinux11 · · Score: 1

      Not sure what COBOL you are talking about, but IBM's Z/OS version supports Unicode/ Variable sized data fields and integrates with all the other Mainframe Languages via LE. It even as support for threads (not the greatest).

    17. Re: Why not? by lrichardson · · Score: 1
      Fragile? When I work with 'older' systems, I tend to see a level of 'robustness' that is missing in the newer stuff.

      That said, poor development - regardless of language - leads to exactly what you described.

      And OO doesn't overly complicate stuff ... it just seems to simply not work for overly complicated systems :) It has real, solid benefits, allows for faster development, more modular programming ... and, once you get beyond the point where one individual can keep everything straight, seems to devolve into a mess faster than any older language.

      I like automation. Don't really want to be coding record lengths and block sizes and alignments in some combination of JCL and COBOL. But ... I also like having the option to dive into that level, when necessary.

      I am in the over 50 crowd. That said, I'm using SAS (all-time favourite cross-platform language, with a nod to Java for trying to take that title :) , Unix, Netezza, to put together nice databases for people to play with, mostly using Tableau (the current glossiest of the BI set). Doesn't hurt that I know Essbase ... which officially became Oracle BI, but half the developers ended up at Tableau.

      I have a pet theory, that new languages are developed when some n00b starts in one language, curses it for not being able to easily do what they want, and creates their own ... without learning the subtleties of the first.

      I remember the first time I hit VB ... which was immediately after working on a large CICS project. Don't have to code every !@#$ing location for every field? Don't have to ensure all your calls (and returns) are valid? Drag and drop development? Code that automatically executes, without the user needing to hit the enter key? Awesome! And then ... the downsides slowly became apparent. Debugging was a nightmare compared to mainframes, as the code was scattered/buried all over the place; performance was !@#$. (Speaking off, decades later, a rather large company I worked for replaced their CICS system with a 'Visual' system ... and were frantically adding servers to get it running. Final analysis showed that the new system - regardless of other benefits - required 50 X more processing power).

      Who here has played with Panvalet? Yeah, originally designed before mainframes even had 'PDS's (folders) - so it offered a pseudo-PDS, and VSAM files couldn't be over 4 Gb - which it had a work-around for. Eventually, the underlying technolgy (IBM) incorporated those items. By which point Panvalet had a spectacular version control. Who here is using a *separate* version control tool? Currently playing with Tortoise SVN ... and cursing the lack of some functionality Panvalet had decades back ....

      There's this idea that technology can replace the need for skills. Seems to be prevalent in upper management, and in any company pushing their technology. And ... pretty much BS. I've seen (and done) systems designed by two or three people, running on near antiquated hardware, leave the 'official' projects (meaning $100M+ budgets, teams of developers, hardware that you have to show ID before seeing) in the dust.

      Currently dealing with a large push to HADOOP. Woo! New buzzwords! How's that line go? "All groups develop their own language of obfuscation, to show who is, and isn't, in their group." Minor details like database design are completely alien to the group putting it together. Normalization? Huh, what's that? Slight problem in that at least two of the data feeds are both huge, and contain massive duplication. One system (M$ SQL Server) is already dying, because the same group didn't bother with any of those pesky considerations ... and are a) running out of space and b) users are a little upset that a million dollars of hardw

    18. Re: Why not? by tibit · · Score: 1

      Never mind the clunkiness of the old programming languages themselves, the entire build system and tooling support on these platforms is abysmal, as you've hinted. Modern containerized develop - test - deploy cycle is miles ahead in terms of productivity and robustness vs. these legacy systems. I'm pretty damn sure that the actual performance of the old monolithic single-threaded code is not exactly stellar either, and a lot of compiled COBOL could be easily replaced with much lighter SQL and Python running on its default bytecode VM, just to give one example. Those can then be easily scaled according to demand, using modern management tools. Scaling on big iron is nice on paper, but in practice - at least to me - it feels like going back to IT trade shows in the 80s. You'll pry Docker out of my dead hands, but only after rigor mortis subsides :)

      And this point of view doesn't come from someone with no background. I used to play on CP/CMS and MVS systems as a kid. Had a DG Eclipse in my bedroom growing up. VAX already was a breath of fresh air compared to those. I had machines running CP/M, PC-DOS, some Swedish systems from DIAB running DNET (I still use embeedded X.25 at work - it's cheap). About the only thing I remember fondly about IBM infrastructure was the Rexx scriptability. I missed Rexx on DOS and CP/M. Then early Linux came to be and I promptly forgot about the DOS nonsense :)

      --
      A successful API design takes a mixture of software design and pedagogy.
    19. Re: Why not? by Anonymous Coward · · Score: 1

      Yeah, but there aren't many programming languages that handle addition and subtraction as well as Cobol does by default. For realzies.

    20. Re:Why not? by tibit · · Score: 1

      Yep. There was a time in Sweden where quite a few businesses ran on ABC machines from DIAB, networked using DNET cards running X.25 on a RS-422 token ring. Record processing was done using ISAM instructions in the excellent structured Basic that ran on those machines. It performed very well and was much easier to use than COBOL. And that was mid-80s! For business continuity, the DNET cards were made available with ISA interface, and the Basic interpreter was ported to PCs. That particular dialect of BASIC was a decent general-purpose language, and fast enough to implement decent interactive business applications running in text mode. There were serious accounting and ERP systems built on that.

      --
      A successful API design takes a mixture of software design and pedagogy.
    21. Re:Why not? by angel'o'sphere · · Score: 1

      If your derived class does not use much of its base class you should not have inherited from it.
      Plain and simple ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    22. Re:Why not? by whitroth · · Score: 1

      i++

      I took a course in OO in the mid-nineties, and OO design was interesting... but the closer you got to the code, the fuzzier it got.

      And COBOL works really well for what it was designed for: huge batch jobs. The only problem I had with it was lack of control structures, so I left behind when I went off to the joy of *Nix, were a lot of PERFORM 1000-dummy-paragraph THROUGH 1000-dummy-paragraph-exit WHILE [all my array processing here].

      And if you kids think that no one does huge batch processing, you probably are only interested in video games and eye candy, and don't really understand what computing's about. I suggest that you consider, for example, the US IRS processing tax returns....

      There was another story on slashdot, about linkedin trying out 70-style no-CS-degree apprenticeships... perhaps banks should be giving money to community colleges to teach COBOL again.

    23. Re: Why not? by bws111 · · Score: 2

      What gives you the very incorrect idea that the 'old' clode is single-threaded? IBM mainframes have supported multi-processing since 1965. Current models have up to 120 CPs in one image. And as for performance - there you are WAY out in left field. Many COBOL programs involve decimal operations, and in COBOL that translates to HARDWARE decimal operations. If you think you are going to get anywhere NEAR that performace with Python (snort), I'll have what you're smoking.

    24. Re: Why not? by Marxist+Hacker+42 · · Score: 1

      I'd disagree with that. You can write HTML in any language that has a print statement just fine.

      And most Cobol systems can output CSV or any other text based file format you want.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    25. Re: Why not? by david_thornley · · Score: 1

      COBOL is an excellent language for doing basic business things. You don't need threads, because the individual actions are so simple. Use different processes if you need to. Useful libraries? Enough. Integration with other components? Sure. IBM has a collection of components that interface well with COBOL.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    26. Re: Why not? by david_thornley · · Score: 1

      A programming paradigm is a way of thinking about programming, not executing code. C is capable of supporting OO, but it's awkward. You might as well say C is a functional language because there have been compilers from Lisp into C.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    27. Re:Why not? by david_thornley · · Score: 1

      Deep inheritance hierarchies should be used only when called for. We have some. There are languages where everything inherits from something else, except for some ultimate base class, and that does encourage people to abuse inheritance.

      If an object doesn't use much of what it inherits, why inherit? Use composition (including a class object as a data member) rather than inheritance when you can.

      All code rots badly where people don't understand what was written, regardless of paradigm. At least with an inheritance hierarchy, if only one child class uses it, you can push it down the hierarchy.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    28. Re: Why not? by michael_wojcik · · Score: 1

      Unicode? No. Variable sized data fields! no.. Threads? No. Useful libraries? No. Integration with other components? No.

      Wrong on every point.

      Maybe you should learn something about a subject before you make an utter fool of yourself.

      Of course, you're still doing better than BeauHD, who published this obvious piece of marketing rubbish along with nonsense like claiming Grace Hopper invented COBOL. If only he had access to some sort of global repository of information to fact-check this shit...

    29. Re: Why not? by michael_wojcik · · Score: 1

      Does COBOL have for each loops?

      Yes, in managed COBOL (JVM or CLR).

      Does COBOL have LAMBDA expressions?

      Assuming you mean "lambda expressions" (it's not a fucking acronym), and by that you mean "closures", then yes, via anonymous delegates (in managed COBOL).

      Does COBOL have Autoboxing?

      Yes, in managed COBOL for CLR. Actually, I think it autoboxes for JVM, too.

      Does COBOL have Generics?

      Managed COBOL has generic types and methods, yes.

      Does COBOL have a vast population of developers?

      It's certainly much larger than the snake-oil merchants like the one quoted in this article would have you believe. I'll omit the religious war over the value of popularity; I'm sure we're all tired of it.

      Does COBOL have AOP?

      Depends on the execution environment and flavor of AOP. Could be better.

      Shall I continue?

      I wouldn't, if I were you. Too much competition in the ignorance parade today.

    30. Re: Why not? by Ryyuajnin · · Score: 1

      The fact that you have to resort to ad homenim to defend says allot. COBOL is garbage, it will stick amroud like garbage, and people will continue to bitch and step over it like garbage. ... And by the way, I think you are confusing JavaScript with Java... Because Java aint got no muthafuk'n closures, BITCH!

    31. Re: Why not? by K.+S.+Kyosuke · · Score: 1

      I wouldn't put "xslx" and "modernizing" nearly that close to each other, but hey...

      --
      Ezekiel 23:20
    32. Re: Why not? by Marxist+Hacker+42 · · Score: 1

      The one thing Cobol does well is formatted output. CSV is just a special formatted output.
      http://www.csis.ul.ie/cobol/co...

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    33. Re:Why not? by Archtech · · Score: 1

      "Framing Software Reuse: Lessons From the Real World" by Paul G. Bassett
      https://www.amazon.com/Framing...
      explains (among many other things) how to implement most of the benefits of OO - in COBOL. Search for "Basset Frame technology COBOL" to find out more. [Disclaimer: I have nothing to do with this technology, or products that use it. I just find it admirably clean, simple and practical].

      --
      I am sure that there are many other solipsists out there.
    34. Re: Why not? by michael_wojcik · · Score: 1

      There was no argumentum ad hominem (or "homenim" - I know, looking things up is hard) in my post. Perhaps you should learn what that phrase means.

      Nor did I claim there were closures in Java. Of course there are, but I said nothing on the subject. (And I have never confused Java with Javascript. I've been using both languages since shortly after they were thrust on an undeserving world. I've never been under the impression they were in any way related, aside from being distant members of the C syntactic family.)

      And, incidentally, the alot is better than you at everything. Because you're an idiot. I don't claim that says anything about the facticity or quality of your arguments, of course; that would be argumentum ad hominem. Your arguments fail on their own merits.

    35. Re: Why not? by tibit · · Score: 1

      Multi-processing is only exploited when you design your system to exploit it. There was no wide-spread auto-parallelization of algorithms on these systems, at least not in the 80s. Certain database operations could be parallelized if you wanted to pay for it. The support on the application end was scant IIRC.

      Decimal operations on modern ia32, ia64 and arm are implemented using 64-bit integers and not slow at all.

      --
      A successful API design takes a mixture of software design and pedagogy.
    36. Re: Why not? by bws111 · · Score: 1

      I just did a little test. Wrote a Python program to create a Decimal number (precision 9) and add .01 to it 10,000,000 times. Elapsed execution time: 102S on
      an Intel CORE i7.

      Wrote the same program in COBOL (same decimal numbers, same precision) and ran it on a mainframe. Elapsed execution time: 0.33S

      So, yeah, running on an Intel processor using Python isn't 'too slow', it is only 300X slower than a mainframe using COBOL.

  2. COBOL isn't hard to learn by Anonymous Coward · · Score: 5, Insightful

    COBOL isn't hard to learn, and it can be understood/read/debugged a lot easier than many of the more contemporary languages. Banks that want to maintain COBOL systems need to just hire new CS graduates and give them time to come up to speed on the COBOL language.

    Whoever wrote this article unfortunately appears to subscribe to some bizarre employer-centric view that programmers and CS grads are not allowed to learn programming languages on-the-job. COBOL-coded systems are for back-end processing, not for customer-facing systems.

    1. Re:COBOL isn't hard to learn by MightyMartian · · Score: 2

      Indeed. If there is a market for COBOL programmers (and it's clear there is), then the obvious solution is for unis and colleges to spit out more COBOL-literate CS graduates. Honestly, if I was ten years younger, I'd probably delve into it myself. It is, after all, just a programming language, and hardly on the same level of trying to learn Sanskrit.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:COBOL isn't hard to learn by maglor_83 · · Score: 1

      COBOL isn't hard to learn, and it can be understood/read/debugged a lot easier than many of the more contemporary languages. Banks that want to maintain COBOL systems need to just hire new CS graduates and give them time to come up to speed on the COBOL language.

      All this may be true but why would they do that when, if they replaced it with something developed in the current century, they would not need to. A delivery company could train it's employees to drive horses and then use horse carts to make local delivery runs but why would they? Well perhaps for a sales gimick but otherwise using old technology often gives significant disadvantages beyond the need to train your employees.

      Because it's cheaper.

    3. Re:COBOL isn't hard to learn by Kjella · · Score: 5, Interesting

      Indeed. If there is a market for COBOL programmers (and it's clear there is), then the obvious solution is for unis and colleges to spit out more COBOL-literate CS graduates. Honestly, if I was ten years younger, I'd probably delve into it myself. It is, after all, just a programming language, and hardly on the same level of trying to learn Sanskrit.

      As long as you have a real fall-back so your career doesn't dead end. What can easily happen is that you do X then more of X because it's the only place you get a salary/career development until you've done X so long nobody will really hire you for anything else. I see this with for example some SAP consultants, essentially SAP customers want to hire you for your SAP experience and the rest of the world doesn't care that you have a general IT degree 5 or 10 years ago because your experience is all SAP-specific and they don't run SAP.

      Now they're probably safe since that ERP is burrowed so deep into many companies they'll never get out, but for something like COBOL you could end up doing it for some years and then the legacy system is shut down and nobody wants to give you anything but a junior non-COBOL position. That is if they'll even hire you or if they'd rather have a recent college graduate. Or you might have to relocate to find one of those increasingly rare positions that actually value your COBOL experience, which of course only makes it harder at the next crossroads.

      If you write cell phone apps as a hobby and can show them a portfolio or something, maybe you'll get away with it. No, you're not a dinosaur who only knows an outdated language and best practices from 50 years ago. Or some other way to be able to transition away from that COBOL career more smoothly. Some of my older colleagues noted that the parking inspector at work used to be COBOL programmer some 20 years ago, they updated their skillset and apparently he didn't.

      --
      Live today, because you never know what tomorrow brings
    4. Re:COBOL isn't hard to learn by maglor_83 · · Score: 3, Insightful

      Referring to banks, not delivery drivers. The delivery company would use vans because it's far more efficient (ie cheaper). The bank would train COBOL devs because it's also much much cheaper than replacing a working system.

    5. Re:COBOL isn't hard to learn by mark-t · · Score: 1

      COBOL isn't hard to learn...

      That much is true, but it is tedious as fuck to use as a programming language.

    6. Re:COBOL isn't hard to learn by Strider- · · Score: 5, Insightful

      Indeed. If there is a market for COBOL programmers (and it's clear there is), then the obvious solution is for unis and colleges to spit out more COBOL-literate CS graduates.

      Oh, hell no. Universities and computer science departments are not trade schools, and we shouldn't be expecting them to teach any specific technology or language. That is not what the discipline is about. What they should be doing is producing graduates that grok and push the concepts that underlie computing in general. They should have a good grasp of algorithms, object oriented design, logic, and so forth. The language is incidental. A well educated grad should be able to pretty much pick up any language, and view it as simply another syntax, potentially with slightly different grammar. In practical terms, a good CS program is far closer to being an applied discrete mathematics degree, rather than a programming degree.

      --
      ...si hoc legere nimium eruditionis habes...
    7. Re:COBOL isn't hard to learn by RightwingNutjob · · Score: 1, Insightful

      All programming languages are tedious as fuck to use. In fact, work itself is tedious as fuck when the alternative is beer, sex and video games. Yet people still go to work because they get paid money for it.

    8. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 4, Interesting

      I went to community college and we had an Associate's track in, basically, mainframe computing. AS/400, JCL, COBOL because we had several local firms that still maintained and ran mainframes (and last I checked, still do. I believe one tried to move to commodity hardware and rewriting the whole stack in Java, but I don't know if they finished that transition).

      The problem with "just picking up COBOL" isn't necessarily the language, it's the whole system it's deployed on. There's no CLI that a Linux user would readily recognize (I found it easier to think of it like a BBS), the whole Jobs system is utterly alien to someone used to VAX/UNIX, etc etc. My local college also did a lot of that, but in the MIS department. The EE department started everyone out on VAX/VMS and Pascal, the CS department on C and qedit. :D They moved to Visual Studio not long after, though.

    9. Re:COBOL isn't hard to learn by Altrag · · Score: 5, Insightful

      I agree the article's claim is dumb, but not for the reason you suggest. Finding programmers is easy (at least if you're willing to pay a reasonable wage,) and teaching them COBOL is easy as well (any decent programmer should be able to pick up a new language within a week or two.. especially if they're hitting the ground running and have no choice but to learn it.)

      The problem is the business logic. Banking isn't particularly simple at the best of times, and all of those ancient systems will have decades worth of hacks built on top of the base logic for whatever corner cases, hardware workarounds and other tweaks that have been needed over the years. A new programmer learning COBOL will have to be wary of those kind of hacks until they understand them. A programmer trying to port the system to another language/system on the other hand will have to understand those hacks all (nearly) at once in order to make sure they properly get replicated.

      I don't really see any reason beyond simply "new is better!" to do this. By the time they manage to fully port and test the new system, they'll be wanting to rewrite it again in the next fad-language-of-the-day. I mean name one "top" language today that's been around for more than about 5 years and doesn't already have people crowing about how its past its expiry date and everyone should be rewriting all their code in some other language. There's the occasional specific domain where that happens (C++ for performance-centric applications like games, Fortran for sciency things, Matlab for mathy things and the such) but anything even close to general purpose? Few if any.

    10. Re:COBOL isn't hard to learn by vtcodger · · Score: 5, Insightful

      Once, many, many years ago, I had to look at some COBOL software to see how it was handling some data. Remarkably easy to read and I'd never seen the language before or since.

      I don't think I'd have the patience to program in COBOL

      But I have to say that if I were an IT manager responsible for hundreds of thousands of lines of that stuff that worked, I'd probably be REALLY reticent to scrap it in favor of something more "modern".

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    11. Re:COBOL isn't hard to learn by mark-t · · Score: 1

      All programming languages are tedious as fuck to use.

      Only when you try to apply them to problems that are too far removed from their own domain of interest. In my experience, COBOL development is tedious even in the very domain for which it is intended - business oriented programming. You can do everything that you can in COBOL in python, for instance, and the resulting work would be just as readable and far less verbose.

      COBOL programs lack elegance... they are the epitome of the saying "everything looks like a nail when you have a hammer".

    12. Re:COBOL isn't hard to learn by Tough+Love · · Score: 2

      All programming languages are tedious as fuck to use.

      Cobol is more tedious than more fuck.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    13. Re:COBOL isn't hard to learn by amxcoder · · Score: 1

      With all the newer (re: younger) programming kids out there that are quick to jump on the fad programming language of the day, why can't they learn COBOL? Is it just because it's old, so it's not hip like all the other languages that come into fashion and fade out to oblivion faster than anyone can actually become proficient in them?

      Or is it being driven from the employer, where they need someone experienced in an older language that isn't as popular, but are unwilling to PAY for the experienced person willing to learn a language that is used only in older systems. I realize COBOL isn't really a "niche" language, but the more rare it is to find proficient programmers in it, it does actually start qualifying as "niche". Rule of Thumb says, you usually have to pay more for persons experienced with "niche" programming environments/languages. If the money is there, I'm sure there will be more people willing to learn it, or will be able to find already experienced developers.

    14. Re:COBOL isn't hard to learn by aaarrrgggh · · Score: 1

      Honest question-- are the back-end systems functioning in a scalable way for today, rather than just functioning for all other middleware to work around the limitations?

      The first question is if the system meets the needs as it exists, and what changes are ultimately needed.

      I can see many things with banking today that don't work well in batch mode, but I have no idea how the banks work around that fact. I'm sure there are other examples as well.

    15. Re:COBOL isn't hard to learn by outlaw · · Score: 2

      COBOL is not your average Algol deriviative !

      I'll grant the the 80-20% rule likely applies..

      But things like Sequential vs Relative vs Indexed I/O, BCD (packed & zoned), multi-return option on PERFORM, etc...

      I'd be more comfortable saying 'mediocre' instead of 'proficient'

    16. Re:COBOL isn't hard to learn by rickb928 · · Score: 5, Insightful

      COBOL was ubiquitous in the financial industry before SAP's predecessor was someone's dream. COBOL will take 10 years to get rid of *if* all users begin concerted efforts to do so, these transaction processing systems are too important to just 'replace' without careful planning, development, and most importantly defend against feature creep and being engineered into failure.

      SAP is a baby. COBOL is grand dad. And grand dad still gets out of bed, does his work, and does it well. There is indeed a market for fresh COBOL programmers, and a decade before they need to move on to a new platform.

      In a world where we are cautioned that we will have multiple careers as the job markets change and adapt, it's ludicrous to pretend that programmers can't move on to new languages, new platforms, new challenges. What is being said is "it's cheaper to hire new grads than to hire retrained experienced workers". That is sharp practice. Not nice, but profitable. And not new.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    17. Re:COBOL isn't hard to learn by clintp · · Score: 5, Insightful

      COBOL isn't hard to learn, and it can be understood/read/debugged a lot easier than many of the more contemporary languages. Banks that want to maintain COBOL systems need to just hire new CS graduates and give them time to come up to speed on the COBOL language.

      All this may be true but why would they do that when, if they replaced it with something developed in the current century, they would not need to. A delivery company could train it's employees to drive horses and then use horse carts to make local delivery runs but why would they? Well perhaps for a sales gimick but otherwise using old technology often gives significant disadvantages beyond the need to train your employees.

      I've worked in legacy software for a long time... and here's the thing.

      Those COBOL systems aren't off-the-shelf modern framework-driven standard software packages. These packages were custom-built and tailored to the business needs of *that particular institution* over many years. You can't plonk down a credit card and buy a replacement; there's no github repository for that kind of code; you can't knock one out in a couple of weekends in a code camp.

      That business' processes have co-evolved with that software for better or worse. Replacing it means rebuilding it around the existing business.

      The programmers that work with this old cruft know the ins-and-outs of the system -- and if they're smart, they've learned the business, and the business owners *know* they know it. When the business decides to replace it, that's when the developer steps up and says "I'll do it, here's the plan." You go in as Jr. Programmer, you come out as Sr. Software Engineer.

      In 30 years I've written (whole or in part) 2 payroll systems, 1 full-financial system (AP, AR, GL, etc..), 1 room scheduling systems, one freight routing system and one tax filing system. Each one (for its time) very modern, but based on older shittier systems that had to be learned and maintained before that.

      --
      Get off my lawn.
    18. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 4, Interesting

      Even if students coming out of a course should grok code in general, that doesn't mean they have discipline-specific skills in COBOL necessary to allow them to deal with this kind of code. Some of that stuff is learned over decades.

      It's entirely the bank's fault for not taking on young employees and teaching them these new skills, and putting them with the veteran programmers and guaranteeing their jobs for life, with good pay and conditions. They have no one else to blame.

      Had they done this, it wouldn't be a problem. COBOL would just be the language that banks use - nothing else. Banks seem to feel it's the universities responsibility to churn out skills that they might want some day, but without paying either the universities or the graduates ( through employment ) for their services.

      They still have time for this - all they need to do is pay enormous amounts to programmers willing to sit with and replace aging veterans. Good luck to them. I hope the banks choke on this.

      When I studied, we were forced to learn COBOL for precisely this reason. No one was ever hired, or taken on, or otherwise employed out of it - It was just one of those "Industry want this, so we're teaching this" situations, but the truth is that industry only ever want experienced programmers, but they want them to gain that experience somewhere else.

      When we see COBOL programmers paid 1 million per year, like high-flying executives, we'll know they finally realized their value. In the mean time, maybe a few more executives should be prosecuted when they have losses due to COBOL bugs and failures, for running systems they refused to maintain, with foreseeable outcomes.

    19. Re:COBOL isn't hard to learn by sgendler · · Score: 1

      So basically, there will eventually be a strong market for experienced enterprise developers who have taken the time to learn COBOL. They can maintain the existing system while learning it in sufficient detail to begin the process of implementing a replacement via 'modern' technology. Learning a new language, I don't care how obtuse, is not some kind of impossible task, especially for an experienced software engineer. I've lost count of how many new languages and frameworks I've had to pick up on the job over the course of a 22 year career so far - pretty much all of the mainstream options, at one point or another, with COBOL being one of the few exceptions, and my modern enterprise software development chops are top notch. If some bank wants to double my income, I'll happily start learning COBOL right now. Triple it and I'll even consider moving to NYC. Until the market provides that kind of return on my own investment of time and effort, neither I nor the vast majority of my peers are interested. As soon as it does, there won't be a shortage of capable COBOL talent for long.

    20. Re:COBOL isn't hard to learn by Altrag · · Score: 1

      I don't know specifics about what they do, and I'm guessing that would differ from one organization to the next anyway depending on their specific criteria and how clever their designers and programmers are.

      But in terms of the COBOL language specifically, keep in mind that its still maintained. The last COBOL spec was released in 2014. That is, new features and paradigms can likely be built on top of existing software by just porting forward to a new compiler rather than switching languages all together. Still a somewhat risky proposition (always the chance of new conflicting keywords or deprecated library routines or whatever problem COBOL upgrades present) but not nearly as bad as rewriting from scratch.

    21. Re:COBOL isn't hard to learn by arglebargle_xiv · · Score: 5, Interesting

      Exactly, if there's a demand for it, it'll be fulfilled. The article reads like something written by some recent CS grad, lets throw out this horribly uncool, unhip code that nevertheless can handle three trillion dollars of transactions a day and has been going for forty years and replace it with something that some Indian subcontractors slapped together using Ruby and MongoDB.

      In a past life I worked for a bank. They decided to replace their existing Cobol on IBM big iron with Java on... something that wasn't big iron. After several years work and tens of millions of dollars spent and even more than that lost due to problems with the new, modern replacement systems, they threw in the towel and made their modern system screen-scraped 3270s because that shit just works, and keeps on working. It's now all Windows-based at the front end, but everything in the backend is still Cobol on mainframes.

    22. Re:COBOL isn't hard to learn by Slicker · · Score: 1

      An academic degree is about the concepts and pushing the envelope--not specific job training like a vocational school. However, you do need to learn specific programming languages in order to not be detached from reality when dealing with them in theory. Theory gave us OO languages that are many multitudes more complex and harder to maintain than COBOL for the same data processing tasks. That's huge problem for which some background in COBOL might alleviate.

    23. Re:COBOL isn't hard to learn by arglebargle_xiv · · Score: 1

      Oh, hell no. Universities and computer science departments are not trade schools, and we shouldn't be expecting them to teach any specific technology or language.

      They should, OTOH, at least make some sort of attempt to teach some vaguely relevant language rather than going out of their way to teach to must useless academic wank they can come up with. The local Uni has taught, over the years, Apple Pascal, Eiffel, Prolog, Haskell, and other similar ones. It's like going through a catalogue of "languages you'll never be able to use in real life and that you'll never be able to get a job with" and drilling them into students. It's no wonder that a local software company recently complained that they had to interview on average seventy candidates to fill one position, none of them could program worth a shit in any actually-useful language.

    24. Re:COBOL isn't hard to learn by bored · · Score: 1

      But your python app wouldn't be doing millions of transactions a second on a system about as powerful as a mid range server... Nor would it run for the next 40 years given python's tendency to break the language every so often.

    25. Re:COBOL isn't hard to learn by harperska · · Score: 3, Interesting

      At my college the low level CS classes were taught using Scheme. The idea was to use a language that nobody would ever in their right mind use in the "real world" to teach basic concepts like recursion without the student getting bogged down by implementation details specific to a language. Higher level classes were taught in Java so that we would have experience with a 'real' language. Also, there are some concepts that are nicer to work with in a powerful modern language, rather than shoehorning them in to an obsolete language not designed to support them.

    26. Re:COBOL isn't hard to learn by mark-t · · Score: 1

      If speed is a prerequisite, C++ could be a decent second choice. With the right abstractions it can be nearly as easy to read.

    27. Re:COBOL isn't hard to learn by demon+driver · · Score: 1

      Indeed. If there is a market for COBOL programmers (and it's clear there is), then the obvious solution is for unis and colleges to spit out more COBOL-literate CS graduates. Honestly, if I was ten years younger, I'd probably delve into it myself. It is, after all, just a programming language, and hardly on the same level of trying to learn Sanskrit.

      As long as you have a real fall-back so your career doesn't dead end. What can easily happen is that you do X then more of X because it's the only place you get a salary/career development until you've done X so long nobody will really hire you for anything else

      Well, I guess it still depends a bit on whether you present yourself as a Java/C#/whatever programmer who's recently done some COBOL work, too, or as a COBOL programmer with a Java/etc background...

      BTW, I started my career programming COBOL in an era when PCs began to replace mainframes (while the place where I was working was already a bit late there), and at first they used COBOL for writing PC applications, too, simply because most of their programmers didn't know anything else.

    28. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 1

      Bah, teaching should be done in assembly.
      The students will learn to appreciate modern languages and the consequences of recursion will be much more evident.
      They could use some theoretical assemble language if they don't want to deal with implementation specific details but as long as the functions they use aren't macroscopic they will have a lot better understanding of how computers actually works and will never struggle with what a pointer is or how they work.
      Once you have gotten through the basics any higher level language will do.

      The problem with only teaching in languages that aren't used is the "getting bogged down by implementation details specific to a language".
      There are a lot of those in the real world and the nice algorithm that looks clean in theory have a lot of problems once you implement it in an actually used language.

    29. Re: COBOL isn't hard to learn by slack_justyb · · Score: 1

      Hold up. Now I've worked COBOL. There's the COBOL that they teach you and then there's the stuff you're going to see out in the field. There is a huge difference and it'll cost any company time for any new person to get up to speed.

      Each company has their own way they like to do subfiles, their own standard for indicators, their ways of dealing with file access, and so on. The language per se isn't that hard it's just everything else about dealing with COBOL in a real system that's the time muncher.

      Additionally you'll run into things where this group of programs was written when file indicators used 60-69 and this group it's indicators 80-89, and that group they use actual variables, oh and this handful of groups was before the compiler got table (COBOL array) support. Oh and then that's not getting into the literal half dozen ways to interact with a display file. Nor service programs etc.

      COBOL is easy to learn, but knowing the syntax of the language just doesn't prepare you for how wild west programming used to be and code from the 60s tends to be more along the lines of, "whatever solution I came up with that day to solve this one problem is what I went with." A huge lacking in coding standards and thus a lot of inconstancy not just in programs built the same year, but literally if the developer slept between coding sessions, you could have different styles in a single program from the same person. It was really an undisciplined style of getting things done.

    30. Re: COBOL isn't hard to learn by Lorens · · Score: 3, Interesting

      Fretting that banks may have to pay to train software engineers to learn the tongue of their industry instead of getting to pay dirt cheap rates to retirees is very far from tugging at my heart strings.

      There are banks and banks. I work at a hundred-year old bank where most of the COBOL programmers are between 30 and 45. The older ones have graduated to team lead, plain management, auditing, cost control, or other (presumably better-paying) posts. There are lots of people recruited out of school to work on COBOL (and Hadoop, and CICS, and Kafka, and OPC/TWS, and NodeJS, and if you only know one in two then you're not cross-platform).

      This is good HR. There are people in HR whose job it is to plan out career paths and make sure on one hand that people don't get stuck with only outdated skills, and on the other hand that the bank doesn't get stuck with not enough people competent in a given skillset. If other banks don't have good HR, then I'm sorry for them but it's not my problem.

      Yearly pay is not that great, but I have job security, I can go to the beach after work, and if you factor in that I have 56 weekdays off in a year it gets better... and bad pay is probably a consequence of having competent HR too.

    31. Re:COBOL isn't hard to learn by serviscope_minor · · Score: 1

      Indeed. If there is a market for COBOL programmers (and it's clear there is), then the obvious solution is for unis and colleges to spit out more COBOL-literate CS graduates. Honestly, if I was ten years younger, I'd probably delve into it myself. It is, after all, just a programming language, and hardly on the same level of trying to learn Sanskrit.

      A thousand nopes to that! If businesses want cobol programmers, they ought to pay for them. The salaries aren't especially high, and they're asking people to come into a potentially dead end career working on dull stuff in a boring language. For cheap.

      The obvious solution is to pay well and train people up, not expect everything they need to be handed to them on a platter. Other companies get this. I'm switching jobs soon: I've been recruited be a company who wants the skills I learned in academia training up people in my area of expertise. They realise there's a skills shortage, so instead of pearl clutching like so many whiny mega corps, they're knuckling down and doing and paying what they need to get what they need.

      Being a smaller, much younger company, I guess they're not of the mindset that everything should be handed to them on a plate.

      --
      SJW n. One who posts facts.
    32. Re:COBOL isn't hard to learn by Z00L00K · · Score: 5, Funny

      SAP is more likely to go the way of the dinosaurs than Cobol.

      Which reminds me of this joke:

      In 1998, a programmer who had been working on Y2K fixes started to get anxious because he couldn't believe how pervasive the problem was. He switched from company to company trying to get away from it, but everywhere he went he became regarded as the Y2K expert and immediately became the team lead for that company's Y2K contingencies. He finally had a nervous breakdown, quit his job, and decided he wanted to be knocked unconscious when the Y2K actually came about.

      A month before Y2K he was put into an artificial coma and cooled down to a near cryogenic easily sustained long term life support.

      Unfortunately the life support notification system had a Y2K bug, and no one revived him for 8000 years.

      Finally he was found and revived. He woke up, and saw himself surrounded by lots of glass, light, stainless steel, and tall beautiful people in white robes. He asked if he was in Heaven.

      They replied, "No, this is Chicago. Actually but it's a lot like Heaven to someone like you."

      "Someone like me?"

      "You are from the 20th century. Many of the problems that existed in your lifetime have been solved for thousands of years. There is no hunger and no disease. There is no scarcity, or strife between races and creeds."

      "What year is it now?"

      "Yeah, about that - it's the year 9,998. You see, the year 10,000 is coming up, and we understand you know something called COBOL?"

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    33. Re:COBOL isn't hard to learn by anonymous+cupboard · · Score: 1

      It is pretty crap for writing a GUI (somewherw there is a COBOL version of "Hello World" for X-windows, it is horrible), but excellent at straight data processing, especially with fixed field format files. It is allso excellent at properly handling money in exact amounts.

    34. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 1

      A well educated grad should be able to pretty much pick up any language, and view it as simply another syntax, potentially with slightly different grammar. In practical terms, a good CS program is far closer to being an applied discrete mathematics degree, rather than a programming degree.

      People keep saying this, however the devil, and the bugs are in the details. And we are talking about the details of the semantics. If you set a variable in one thread, when exactly is it okay to read it in another thread? When you read from a potentially infinite lazy list, under what circumstances exactly could the runtime decide it has to read in the whole list? What's wrong with the type signature of this function that's going to make it a nightmare for the next developer to update the code? Why is this answer on stack exchange telling me to duck type everything missing some important case likely to cause an unexpected messy runtime exception?

      CS grads who have been programming since childhood in multiple languages writing games and other similar things are undoubtedly the strongest group out there (on average - I don't say there aren't top programmers who have been through other subjects). CS grads who believe that they can "pick up any language in three days" have failed to understand the importance of libraries, which is hardly the best sign for hiring someone.

    35. Re:COBOL isn't hard to learn by DrXym · · Score: 1

      Arguments for teaching COBOL remind me of arguments for teaching Latin. Yeah there are niches where both might be used (respectively IBM and the Vatican) but if you're going to teach someone a language you're better off teaching them something practical and in common use.

    36. Re: COBOL isn't hard to learn by TheRaven64 · · Score: 3, Informative

      That's the second post I've seen saying that COBOL has no unicode support, yet COBOL 2002 added unicode support and is widely supported (COBOL 2014, less so). If you're running on an IBM system, a bunch of the COBOL unicode operations are accelerated in hardware.

      --
      I am TheRaven on Soylent News
    37. Re:COBOL isn't hard to learn by TheRaven64 · · Score: 3, Informative

      Given that most of this code was originally targeting systems from the 1960's and 70's, I can't imagine there being an insurmountable number of lines of code

      According to Wikipedia, Gartner estimated about 200 billion lines of COBOL code in 1997. To put that in perspective, that's more than the total amount of open source C code tracked by OpenHub.net. Can you imagine persuading someone to rewrite all of that C code in a newer language?

      --
      I am TheRaven on Soylent News
    38. Re:COBOL isn't hard to learn by goose-incarnated · · Score: 4, Interesting

      but for something like COBOL you could end up doing it for some years and then the legacy system is shut down and nobody wants to give you anything but a junior non-COBOL position.

      You think that a systems migration won't need your legacy skills? You think that you won't pick up the skills for the new system during the migration?

      Here's a more likely scenario: you do COBOL for 5 years and learn the entire problem domain that the COBOL system services. When the migration occurs with Java your knowledge will be indispensable, and you'll no doubt learn Java in the two years the migration takes to complete. At the end of the migration, you are still the expert in the problem and have new Java skills to apply your expertise.

      It's exceptionally unlikely that the migration from COBOL will be so fast that you won't be able to learn the new implementation technology.

      --
      I'm a minority race. Save your vitriol for white people.
    39. Re:COBOL isn't hard to learn by Rockoon · · Score: 1

      and all of those ancient systems will have decades worth of hacks built on top of the base logic for whatever corner cases, hardware workarounds and other tweaks that have been needed over the years.

      If thats the case then they dont really need COBOL programmers. What they need are people skilled at writing parsers, in order to extract all this information from the production COBOL source code.

      --
      "His name was James Damore."
    40. Re:COBOL isn't hard to learn by Hognoxious · · Score: 1

      Then they should start them on a basic but okay salary and systematically increase it at 20% a year every year for as long

      Ever heard the story of the philosopher, the emperor and the chessboard?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    41. Re:COBOL isn't hard to learn by tehcyder · · Score: 1

      All programming languages are tedious as fuck to use. In fact, work itself is tedious as fuck when the alternative is beer, sex and video games. Yet people still go to work because they get paid money for it.

      That is not how Millenials think.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    42. Re:COBOL isn't hard to learn by tehcyder · · Score: 1

      The problem is the business logic

      I think most of the superstar programmers here consider that sort of thing beneath them.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    43. Re:COBOL isn't hard to learn by sad_ · · Score: 1

      Sure they can do that, but i think the problem is nobody wants to learn that language anymore. I'm note sure all those companies are willing to pay wages high enough that people actually want to do it.
      I still was still thaught cobol (3 years worth of it), i don't want to spend my days with that language anymore and nobody else in class liked it either.

      --
      On a long enough timeline, the survival rate for everyone drops to zero.
    44. Re:COBOL isn't hard to learn by Chris+Mattern · · Score: 1

      That's not a possible solution. The only way to automate determining what a nontrivial program will do is to run it. You can't "parse" it to get a specification of what it does. Turing showed that in his work on the halting problem.

    45. Re:COBOL isn't hard to learn by Chris+Mattern · · Score: 1

      C++ could be a decent second choice.

      bwahaha. You have no idea what COBOL's data types are or why business requires them, do you?

    46. Re:COBOL isn't hard to learn by Miser · · Score: 1

      I would say it will take more than 10 years to get rid of COBOL, but otherwise I agree with you.

    47. Re:COBOL isn't hard to learn by mark-t · · Score: 1

      I know what COBOL's data types are... I used to program in it in the mid 80's. My grief is not with its data types, but with its verbosity. As near as I can figure, the strongest (and I would suggest only) argument against using something like C++ or virtually any other modern native compiled language in place of it is because one simply has a pathological fear of anything new or different, and a belief bordering on religious zealotry (with often similar levels of refusal to listen to countering views or opinions) that no other language could ever do what COBOL does.

      I get it that COBOL works.... but it's just so godawful tedious to actually develop in that I cannot see a good reason to use it today other than it may bring you a decent paycheque because you have an employer that still uses it. There's more to life than money, however... and it's possible to still make a good living programming in modern languages that are nowhere near as painful to use, so I don't think even that argument is a great one.

    48. Re:COBOL isn't hard to learn by micahraleigh · · Score: 1

      Divine intervention can help you get away with some stunning things as well.

    49. Re:COBOL isn't hard to learn by micahraleigh · · Score: 1

      This reminds me of the way ever year or so someone in Europe says, "Hey! We should all speak the same language." Since they don't want to give any language an unfair advantage they make up something completely different. Most people are too occupied doing worthwhile things with their lives to drop everything and learn a language that was never alive and eventually it gets abandoned with a small group of people having wasted a ton of effort on nothing.

    50. Re: COBOL isn't hard to learn by rickb928 · · Score: 1

      You are probably correct, urgency and money won't solve for quality.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    51. Re:COBOL isn't hard to learn by angel'o'sphere · · Score: 1

      You do not need to know what the program is doing to translate it automatically into another language.
      Every compiler does that all the time ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    52. Re:COBOL isn't hard to learn by angel'o'sphere · · Score: 1

      While COBOL programmers are in demand, the demand is not very high.
      And banks actually do train programmers, every company does.
      So: the main reason why the demand is low: the COBOL systems simply run. And is why they don't get replaced. Why would I replace a program which only get changed once, around 1998, over the course of the last 30 - 40 years?
      Hu? Banking is a well known domain since a few thousand years.
      The requirements for data processing backends rarely change. When I did Y2K reengineering I had code in my hands that literally never was touched/changed since it was considered good enough to go into production.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    53. Re:COBOL isn't hard to learn by micahraleigh · · Score: 1

      Does not make any sense ... but ubiquitous in this industry.

    54. Re:COBOL isn't hard to learn by david_thornley · · Score: 1

      The obvious solution for a shortage of COBOL programmers is to pay them more. If people wanted to go into COBOL for some reason, they'd find institutions to teach them.

      One problem is that COBOL is usually not just a language, but a combination of things like CICS (if that's still around) and JCL. You can get a COBOL compiler easily enough, but setting up the IBM environment is expensive, so learning at home isn't really possible.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    55. Re:COBOL isn't hard to learn by david_thornley · · Score: 1

      My experience with translators like that is that they put out unmaintainable code. You're better off dealing with the original and treating the translation as another compiler step.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    56. Re:COBOL isn't hard to learn by michael_wojcik · · Score: 1

      COBOL isn't hard to learn, and it can be understood/read/debugged a lot easier than many of the more contemporary languages.

      You know, I work for a COBOL company (the COBOL company, arguably), and I don't find this argument persuasive. While readability is important,[1] I'm not aware of any methodologically sound studies showing COBOL is inherently more readable than other mainstream programming languages.

      In my experience, any correlation between a programming language and readability has more to do with the predominating culture around that language than anything else. C, for example, suffers from a culture of terseness, with meaningless identifiers and expressions compressed far more than necessary. It's possible to write good, readable C; but relatively few C developers do so.

      Vast amounts of COBOL source code - probably the majority - is not particularly readable. The individual statements may be clear, and COBOL culture encourages relatively useful identifiers; but prior to COBOL85 the language lacked sufficient structuring mechanisms, and consequently COBOL programs are often nightmares to untangle. (This is true even for the compiler; you wouldn't believe what our compilers go through to figure out where they can use efficient control flow when dealing with bad old source that has overlapping perform ranges and liberal gotos.)

      Similarly, refactoring has not traditionally been part of COBOL programming culture, so you have huge source bases full of dead code, because no one's willing to remove or rework anything.

      Again, you can write very good COBOL code. Even with procedural COBOL85, you can use ANSI scope terminators such as end-if and write well-structured programs. With really modern COBOL you can write very clear and tidy OO programs with all the usual high-level expressive features. And more people are doing that - we get questions about it on our community forums and enhancement requests and that sort of thing. But that vast corpus of lousy old code is not going to magically get better.

      What does justify continuing to invest in COBOL is that rip-and-replace has proven to be hugely expensive and risky, and it's relatively easy to extend existing COBOL applications by integrating them with modern COBOL and/or other languages. If you want, you can have your developers do piecewise modernization as they maintain components, or you can just wrap those legacy components in modern interfaces.

      Whoever wrote this article unfortunately appears to subscribe to some bizarre employer-centric view that programmers and CS grads are not allowed to learn programming languages on-the-job.

      Indeed. If there's economic incentive to learn COBOL, people will learn COBOL. The "skills shortage" is one of those things the market actually can fix on its own.

      [1] Maintenance costs are a large component of total software costs, and reading code is a large component of maintenance. It's also critical for improving reliability and security.

    57. Re:COBOL isn't hard to learn by Megol · · Score: 1

      Like COBOL?

    58. Re:COBOL isn't hard to learn by harperska · · Score: 1

      Well, for my CS degree, we did learn an assembly language as well. MIPS, I believe. Not for learning basic concepts, but it was the language and instruction set that we used to learn CPU architecture and compilers. Yes, we built a compiler in Java that compiled a simple language into MIPS.

    59. Re:COBOL isn't hard to learn by the_leander · · Score: 1

      Stuff written in COBOL fails fast and hard. Java is much better at silently corrupting data without complaining.

      You put this on the downsides column, surely from a business point of view this would be a net positive? Or are you talking from a frustration of the coder perspective?

      --
      regards, the_leander
    60. Re:COBOL isn't hard to learn by angel'o'sphere · · Score: 1

      I was more aiming at the stupit halting problem comment.
      I workes with cross translators, in the 1990s there was a system called TXL (the X was a 'joke' for 'transforming', so the whole thing was called 'tree transformation language') I translated a few 100k lines of Modula II into perfectly working C code. I had prefered C++, but that was on an Arcon Archimedes. Translating a game written originally in Pascal on an Atari ST. Not sure why I had Modula II in it ... probably it was converted to Modula II for Macs first, or I mix it up and it was a Pascal to C conversion.

      Anyway, as long as languages have similar concepts, procedures/functions in Pascal/Modula versus functions in C and records versus structs, the transmorgifying is straight forward.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    61. Re: COBOL isn't hard to learn by Archtech · · Score: 1

      Some things have quite long lifespans.

      https://en.wikipedia.org/wiki/...

      --
      I am sure that there are many other solipsists out there.
  3. No. by xxxJonBoyxxx · · Score: 4, Insightful

    >> Doderlein suggests making light-weight add-ons in more current programming languages that only rely on COBOL for the core feature of the old systems.

    Er...that's pretty much been the story since the 1990's (if not earlier) on.

    >> mostly maintained by retired programming veterans

    Er...if they're "maintaining" then they aren't "retired". This whole article sounds companies that whine about not being able to find skilled welders, etc. Well, open your wallet and the talent will materialize - see "IT security" for an example.

    1. Re:No. by Anonymous Coward · · Score: 1

      This. Our payroll system is written in COBOL, and other than lack of updates to the complicated tax rules that keep changing like in PA, we have never had a problem. There's no reason to replace something that just works.

    2. Re:No. by OrangeTide · · Score: 1

      If the average age of your engineers doing the maintaining is 64, then you might as well recognize that you have a problem with retiring programmers.

      --
      “Common sense is not so common.” — Voltaire
    3. Re:No. by chispito · · Score: 1
      --
      The Daddy casts sleep on the Baby. The Baby resists!
    4. Re:No. by sgendler · · Score: 2

      This goes out to all of those complaining about not being able to take more than 3 days off for decades at a time - why in heck are you still working for that employer? I've certainly never had difficulty taking vacations, and I've worked at fortune-5 companies and tiny startups and everything in between. If you are silly enough to stay in a job that is not meeting your requirements when there are so many options that would, you have only yourself to blame. If unfair vacation policies were costing such companies their talent pool, you can bet they'd find a way to accommodate you, just as they have found a way to accommodate those affordable indian employees you have all mentioned, who get 2-3 weeks at a stretch. Heck, these days, I tend to negotiate an exchange of salary for more 'european' quantities of PTO during the hiring process, and you can bet that if I've exchanged income for extra PTO, I'm damn well going to take it every year. If you are a valued employee, no employer is going to be able to limit your PTO. If you're not a valued employee, either become one, or find an employer who will recognize your value. Those are really your only options in a market economy unless you are going to form a union and force a contract on them - and good luck with that.

    5. Re:No. by pete6677 · · Score: 1

      The last full week I was able to take off was in 1983.

      That's your fault.

    6. Re:No. by 110010001000 · · Score: 1

      This guy is a "Seattle troll" who talks about dialup internet, no time off and Republicans and creates massive threads where he responds to himself.

    7. Re:No. by OrangeTide · · Score: 1

      If I'm 70 and financially secure (house paid off, retirement funds coming in), then I wouldn't work for any amount of money. I'd rather spend time with nieces, nephews and grandchildren (if I get any). So there comes a point, eventually, when everyone is either dead or simply don't want to go to work anymore. Without new blood entering the field that doesn't change.

      If you offered a ton of money, maybe someone would learn COBOL. But would they be any good? You'd be paying a high salary to someone who is rather green.

      I do think it would be a disaster to port all the legacy COBOL to something trendy like Python or Ruby or Rust. That transition has to be done wisely, and it should go into a language that will have a long term mindshare. I don't have a crystal ball, I can't say what that might be. For example, maybe C or C++ has many decades left in it. Java seems an obvious choice, assuming Oracle doesn't shit the bed.

      --
      “Common sense is not so common.” — Voltaire
  4. So, take the opportunity. by msauve · · Score: 2

    Anyone worried about getting outsourced, here's a opportunity - learn COBOL.

    --
    "National Security is the chief cause of national insecurity." - Celine's First Law
    1. Re:So, take the opportunity. by jimtheowl · · Score: 1

      Is your animosity coming from having to work with the language in a bad situation or are you simply prejudice?

      COBOL is not for everything nor for everyone, but it does what it does well.

      Few languages make the programmer describe the required input and output in so much detail before coding, which may be why it is well suited to financial systems.

  5. If it ain't broke don't fix it. by Anonymous Coward · · Score: 1

    Why don't new programmers just learn COBAL? Once you learned one programing language you pretty much learned them all. The difference is just syntax which is easy to learn.

    1. Re:If it ain't broke don't fix it. by Archfeld · · Score: 1

      They are learning COBAL. The problem is the language is COBOL. Programmers should learn Hexadecimal and Binary (machine level code) and then go into application layer programming from there, but that is neither cool or trendy.
      AFAIK there are still no viruses on MVS & VM systems. TPF and CICS still function wonderfully there is just a huge price to get into the game with a mainframe system vs. PC/minicomputers.

      --
      errr....umm...*whooosh* *whoosh* Is this thing on ?
    2. Re:If it ain't broke don't fix it. by outlaw · · Score: 1

      They are learning COBOL

      (ftfy).

      The problem is the language is COBOL. Programmers should learn Hexadecimal and Binary (machine level code) and then go into application layer programming from there, but that is neither cool or trendy.

      I learned Assembly fairly early on, and I would agree that, once knowing how the machine operates, it is much easier to express what you want in any higher level language (neglecting things like synchronization points) - even OO constructs often boil down to simple things - calling by pointer. I still write vastly more C than C++ code.

      I have read more hex dumps than many extant programmers (long before IPCS), and can still read many opcodes (ld, st, ...) - but I would not recommend starting at that level. Assembly and/or (restricted) C code fulfill the requisite learning objectives nicely enough.

      However, this is not a path to a feature rich resume (lacking in super models).

      AFAIK there are still no viruses on MVS & VM systems. TPF and CICS still function wonderfully there is just a huge price to get into the game with a mainframe system vs. PC/minicomputers.

      Well, when was the last time you spent some quality time perusing the micro-fiche PL/X listings for MVS (doubt they still exist for z/OS) ?
      The barrier for entry is quite high here... for the nonce !

      Joe random hacker isn't going to easily get access to a z/OS (or z/VM) image to start inspecting object files for issues

    3. Re:If it ain't broke don't fix it. by Archfeld · · Score: 1

      I was replying to an AC that referred to the language as COBAL, hence the intended misspelling.
        I worked for a large financial corporation starting with peripheral operations on punch card readers, and microfiche printers long ago. I've worked with removable platter DASD, on DEC PDP-11/70's through Tandem Himalaya machines, then into Unix and Solaris on SUN and Cray hardware. It sounds like we have similar backgrounds. I did mention that there was huge price to just get into the game at the mainframe level though. I've had to debug more hex dumps in old JES environments than I care to remember

      --
      errr....umm...*whooosh* *whoosh* Is this thing on ?
  6. How about a 4th option ? by psergiu · · Score: 4, Insightful

    How about a 4th option ?

    Fscking pay to train people. If COBOL knowledge means means a good paycheck and job stability - lots of people will want to do that.

    I mean hydroponics and grow lights are all the rage now but i hear of no plans of migrating all the existing old-style dirt-based and sun-lighted vegetable gardens to that. Why ? Because people are still learning how to dig the dirt out in the sun.

    --
    1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
    1. Re: How about a 4th option ? by Anonymous Coward · · Score: 1

      What the fuck are you talking about? Modern farms are absolutely growing in fucking dirt. Plain old organic dirt. How do I know? I'm surrounded by farms. I grow shit in dirt. I'm assuming your experience growing things is pot? Maybe a houseplant? Yeah. Small scale shit is inorganic in some limited circumstances, like marijuana, some orchids, etc... the rest is plain fucking dirt.

    2. Re: How about a 4th option ? by TheRaven64 · · Score: 1

      You might like to pay attention when the muck spreaders are out - the stuff that they're coating the fields in is not plain old organic dirt (or even soil, which is an incredibly complex substance in its own right). It's not even shit anymore, it's a complex growing medium that's covered by numerous patents.

      --
      I am TheRaven on Soylent News
  7. I'll be the first to say it... by Anonymous Coward · · Score: 1

    Too big to fail?

  8. BUGS by AK+Marc · · Score: 3, Informative

    COBOL is simple. It is also relatively limited. This makes it easier to track, troubleshoot, and maintain. With Banks, accountability is more important than functionality.

    1. Re:BUGS by Anonymous Coward · · Score: 5, Interesting

      COBOL is simple. It is also relatively limited. This makes it easier to track, troubleshoot, and maintain. With Banks, accountability is more important than functionality.

      Said the person with very little knowledge of modern COBOL environments !

      I'll grant that COBOL is not like PL/I, where 80% of the programmers know = 20% of the language.

      However, COBOL has one of the richest I/O layers (ok, on par with PL/I) around.

      Caveat Emptor - I intensely dislike the language (to damned verbose), but it and PL/I do pay fund my paycheck (just call me 'Dinosour Bob').
      But the COBOL I learned was circa 1970s, when even COMPUTE was frowned upon (in school) ... And Databases where not yet relational !

      Modern COBOL has OO patterns, JNI integration, XML/JSON tooling, ... All to deal with the option of:
          * Keep the business logic in COBOL
          * Provide the ability to work with newer toolchains (Java, XML, JSON, ...)
      So there is interoperability betwixt the green-screen and non-green-screen luser.

    2. Re:BUGS by outlaw · · Score: 1

      Program by contract, anyone ?

      That was supposed to be ADA but, at the time, compiler technology was not upto snuff - so things like:
      * Loop pre-conditions
      * Loop invariants
      * Loop pst-conditions

      Just were not validated.

      But yeah, you obviously have never tried to reconstruct the logic of a 65K+ line long COBOL program :-(

    3. Re:BUGS by Tough+Love · · Score: 1

      COBOL is simple. It is also relatively limited. This makes it easier to track, troubleshoot, and maintain.

      That is the theory. The fact is, because even trivial things are awkward to do in Cobol, every Cobol program that lives more than a year promptly turns into a gigantic mind sucking unmaintainable pile of toxic sludge.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    4. Re:BUGS by Tough+Love · · Score: 1

      Let me get this straight. The only languages you can imagine are Cobol and Basic?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    5. Re:BUGS by Frederic54 · · Score: 1

      Same for me, we did not use COMPUTE, so we had things like

      ADD A TO B GIVING C

      MULTIPLY C BY D GIVING E

      etc.

      --
      "Science will win because it works." - Stephen Hawking
    6. Re:BUGS by michael_wojcik · · Score: 1

      even trivial things are awkward to do in Cobol

      Translation: I know nothing about what's happened with the COBOL language since 1985.

    7. Re:BUGS by Megol · · Score: 1

      I haven't programmed much in COBOL (too verbose) but have seen examples where it really shines - a few (well relatively - it's COBOL after all) lines of code to do e.g. reports compared to a lot of code C++, even when using relatively obscure libraries to do the heavy lifting.

      It is old, damned verbose, not a general language, not a low-level language but it is suited for the tasks it was designed for.

    8. Re:BUGS by Tough+Love · · Score: 1

      I haven't programmed much in COBOL (too verbose) but have seen examples where it really shines - a few (well relatively - it's COBOL after all) lines of code to do e.g. reports compared to a lot of code C++, even when using relatively obscure libraries to do the heavy lifting.

      Translation: to get rid of COBOL, we just need a sane report generator that can generate reports with a few lines of of C++ or Java, instead of (your characterization) a relatively obscure library. Surely this would be a better use of effort than beating away mindlessly on the old dead COBOL horse.

      I disagree with your assessment that COBOL is well suited to the tasks it was designed for, that is, to provide back ends for business systems. At one time it did its job well, now it is an albatross around the neck of progress. Banks that stick with it will be banks that go under in the next shakeout.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
  9. What is needed.. by MpVpRb · · Score: 1

    ..is a way to translate the old COBOL programs into a language-neutral specification that captures all of the business logic and edge cases that the old code handled

    Then, a way to translate that specification into an appropriate modern language

    Sounds like an interesting and lucrative research proposal

    1. Re:What is needed.. by outlaw · · Score: 1

      Really, have we learned nothing from ANDF (https://en.wikipedia.org/wiki/Architecture_Neutral_Distribution_Format) ?

      I actually started down this path, but got side tracked by earning a living wage.

      The idea was to take a PL/I and Ada basis as an IL, and provide language based decoder/encoder - so one could achieve idiomatic code in any Source->Source translation.

      Interesting yes, lucrative - kinda... There are companies that make their living doing this... but the bugaboo is in the details, especially with PL/I deriviatives and the macro processor.

    2. Re: What is needed.. by techno-vampire · · Score: 4, Informative

      Cobal is a crazy nuanced language that is hardware specific.

      Absolutely wrong. One of the language's biggest selling point when it was first created is the source code is completely hardware agnostic. To demonstrate this, the developers compiled the same program (from the same deck of punched cards) on three different brands of computer, ran the program with the same deck of input data and got the exact same results. The only change they had to make was one card in the Environment Section, and all that card did was specify the target machine.

      --
      Good, inexpensive web hosting
    3. Re:What is needed.. by msauve · · Score: 4, Funny

      What's obviously needed is a COBOL -> APL translator to convert all those programs into a newer language.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    4. Re:What is needed.. by outlaw · · Score: 1

      You owe me a new monitor :-)

      APL/SV VS/APL, APL/2, or the new fangled ASCII keyboard friendly J ?

      If you're game, I'll do the RTE hookup (I/O, BCD, ...)

      I wrote the APL/SV -> APL/2 )MCOPY command ... ah the joys of EXCP level I/O :-)

    5. Re: What is needed.. by Major+Blud · · Score: 1

      Cobal is a crazy nuanced language that is hardware specific.

      Where in the world did you hear that? I'll admit that most production implementations using it today are usually AS/400 and Z-Series, but there are plenty of other operating systems that support it:

      https://www.gtsoftware.com/net...
      http://opencobolide.readthedoc...
      https://en.wikipedia.org/wiki/...
      https://www.microfocus.com/pro...

      --
      If you post as Anonymous Coward, don't expect a reply.
    6. Re:What is needed.. by CaseCrash · · Score: 4, Informative

      I couple of years ago I worked at a place that has an automatic converter from COBOL to C#/VB.Net (followed by an insane amount of testing and fixes to the converter/custom fixes for their code) and we handled all kinds of businesses including banks (I got to spend three weeks in Belgium helping out on the ING project). So people are already doing this.

      (FYI, the company is Asysco)

      --
      No, that link you posted to a web comic we've all seen a hundred times is not "obligatory."
    7. Re:What is needed.. by msauve · · Score: 1

      I never did APL. But I did have a Centronics 761 KSR with an APL keyboard and character set (in addition to ASCII, which I used all the time). It was cool as hell, even though I had no need for the APL capability.

      --
      "National Security is the chief cause of national insecurity." - Celine's First Law
    8. Re:What is needed.. by jimtheowl · · Score: 1

      Nice.
      I'm learning micro APL on a Commodore Super-PET 9000 as a hobby. Unfortunately, I don't have access to an IBM mainframe at the moment.

    9. Re:What is needed.. by TheRaven64 · · Score: 1

      If you don't care about performance parity with anything modern, Hercules emulates a number of the older IBM mainframes a lot faster than they ever ran.

      --
      I am TheRaven on Soylent News
    10. Re: What is needed.. by Chris+Mattern · · Score: 1

      Nobody in his right mind used floating point in COBOL. You used BCD, which fitted the needs of companies accounting in dollars and cents. If your work truly required floating point, you were most likely programming something scientific or technical, and you did it in FORTRAN. And COBOL did not originally have pointers; they were introduced in the 2002 standard, although they were implemented as a proprietary feature in IBM's VS COBOL II. Very rarely used in legacy code, especially since until the 2002 standard it wasn't standard COBOL.

    11. Re:What is needed.. by jimtheowl · · Score: 1

      Thanks for that. I just built it on FreeBSD.

      Any OS you would recommend? I'm considering Turnkey-MVS.

    12. Re: What is needed.. by david_thornley · · Score: 1

      When I was doing COBOL, it was on a CDC Cyber machine that didn't have BCD (it had six-bit characters, and a complicated 6/12-bit scheme if you were so demanding as to want two cases), and hence no COMP-3. That proved to be a problem on one occasion, when the monthly tape from the state agency with multiple record types, added some COMP-3. (We had tools to deal with BCD, but not in varying record types.)

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    13. Re:What is needed.. by TheRaven64 · · Score: 1

      I've not used it, but the guys doing the z/System port of FreeBSD seem happy with it.

      --
      I am TheRaven on Soylent News
  10. Re:No, because they'll have H1B's do the conversio by fibonacci8 · · Score: 1

    The lie being that money isn't being lost/stolen with existing code.

    --
    Inheritance is the sincerest form of nepotism.
  11. It will probably never die by El+Cubano · · Score: 5, Interesting

    Having spent quite a bit of time over the last two years to re-implement in Java a system developed by the government in COBOL, I can tell you that COBOL will probably never die. For example, keeping precise, penny-perfect calculations of dollar amounts in Java is actually quite a pain. This is especially true when the calculations involve dozens of hundreds of steps. My solution in Java has been based around BigDecimal, which makes the code very difficult to read. Aside from that, I have spent the vast majority of the time writing very extensive tests and chasing down really small numeric discrepancies. Guess what, if you decide to replace a COBOL system that does any appreciable amount of math, you would get to do the same thing. Plus, you will never be sure that you found all the bugs.

    The project actually considered the possibility of licensing a commercial Cobol runtime for PC-based platforms (e.g., Windows, Linux, etc.), but that was not feasible for several reasons.

    COBOL is still remarkably good at quite a few things and leaves out lots of the bells and whistles that tend to become distractions in the hands of undisciplined programmers. My only complaint about COBOL (especially old COBOL) is that the control flow is a real pain. Aside from that, it is definitely a workhorse of a language. No need to go killing it off yet.

    1. Re:It will probably never die by outlaw · · Score: 1

      Full agreement, on most all accounts !

      As noted above (AC, sorry - fscked up), modern COBOL has many of the flaws of other major languages (even pointers, &diety forbid).

      The control flow of old COBOL programs is horrendous (I've seen > 65K line, monolithic programs), where a C++ guy would do a metric crap-tonne of 20+ line functions.

      COBOL PERFORM flow is covered by a (5, maybe 4) way return function - optimization under patent. It drives optimizer folk bat-shit crazy (as if they weren't already there) :-)

      I have also seen an inordinate amount of old and new programmers who fail to grasp the power of the COBOL I/O system - and pay dearly in runtime costs because they chose the wrong file organization...

  12. Hopper who? by Anonymous Coward · · Score: 1

    While many (most?) of us know who Grace Hopper is, why wouldn't we include her full name? I realize this is Slashdot but do we really have to act like a bunch of elitists who don't care about someone who doesn't know everything we think they should know, or should we instead strive to educate the younger generations and the less informed? Or is this just a case of lazy editing?

    Captcha: Scorning

    1. Re:Hopper who? by dbIII · · Score: 1, Insightful

      why wouldn't we include her full name?

      Because mentioning a woman in IT triggers far too many snowflakes who will moan about how it's manly men's work to sit inside an office and type on a keyboard - no place for women at all.

    2. Re:Hopper who? by 91degrees · · Score: 2

      Oh, good lord. do you realise you are the epitome of what you are mocking here?

    3. Re:Hopper who? by dbIII · · Score: 1

      Ever heard of self-depreciating humour?
      Yes this place is a sausage-fest and I am also male - so? The kiddies who go on about IT as if they are lumberjacks and it's far too tough a job for anyone without a dick are worth laughing at. They don't get the irony that it wasn't so long ago that only girls were allowed in the high school typing classes and only boys were allowed in the metalwork classes.

  13. Three trillion a day, you say? by dwywit · · Score: 2

    Sounds like it might be worth training some new programmers.

    You can re-write any or all of your legacy systems in modern languages (if you choose to undertake the cost and risk, of course), but one day they won't be modern any more, and there will be new modern languages, all with their advocates shouting about pieces of the sky falling.

    Or you can leave these highly reliable core systems in place and suck up the cost of training new maintainers, and deal with the cost and problems of interfacing them with a "customer-centric" model. Of course, you may have to offer incentives to induce young programmers to use something that's not hip and modern, i.e. $$$

    So customers can already do a lot of the work that used to employ bank tellers, billing/accounts staff, and travel agents. None of which changes the fact that "customer-centric" does not and never will have direct access to the core systems. Who cares if the back-end runs COBOL-sourced object code on a mainframe? Methinks people who advocate for C## and Java in core systems have no concept of core systems and their workflows.

    --
    They sentenced me to twenty years of boredom
  14. So train the next generation of COBOL programmers by srstites · · Score: 4, Insightful

    The article does not mention what I consider to be the most obvious solution to the problem of old COBOL programmers dying off. Businesses with a COBOL maintenance problem should train young people how to program in COBOL. The businesses will need such people even if they plan to convert their code base to a different language as such a conversion would take years to implement.. --------- Steve Stites

  15. Challenge accepted by chadenright · · Score: 1

    I'm a graduating college student with no experience in Cobol, although I am familiar with half a dozen other languages. Honestly, if some bank were to email me right now with a job to maintain and upgrade their 50-year-old cobol code I'd be up for the challenge.

    1. Re:Challenge accepted by Major+Blud · · Score: 1

      That's an awesome way to get your foot in the door, but you'll cringe when you first have to debug a piece of 50-year old code that is poorly documented and written by someone long since retired or dead. :-)

      This isn't a swipe at COBOL though; this could be true of any language.

      --
      If you post as Anonymous Coward, don't expect a reply.
  16. Automatic Conversion by crow · · Score: 1, Insightful

    It's been a while since I've touched COBOL, but it should be possible to develop a program that parses COBOL and outputs the equivalent in a modern language, even preserving the comments.

    Since financial institutions seem to be completely unaware that programmers can quickly adapt to different languages, it would seem like an automatic conversion program could be quite profitable.

    1. Re:Automatic Conversion by outlaw · · Score: 1

      See comment above wrt ANDF

      It is simply not practical in the normative case, especially if you're looking for a resultant code suite that &language_du_jour jockey can read and maintain.

  17. COBOL programmers aren't all old by volkerdi · · Score: 1

    There's a COBOL shop in my small town that contracts for corporations and the government. I know several COBOL specialists in their 30s. It's actually an extremely lucrative field to get into these days, with good pay and job security.

    Rewriting all that COBOL code in some other language would be bound to cause major problems.

  18. COBOL is not ancient egyptian hieroglyphics by Anonymous Coward · · Score: 1

    Any currently competent coder could learn COBOL in a week. Except for learning about BCD and some unusual quirks like the fact that a structure move copies like named fields into like named fields allowing layouts to be rearranged easily. And COBOL always had an interface to other lamguages, FORTRAN if mathematical libraries were needed or assembler if you wanted to implement inter-process locking of common data and such.

    What would be harder is to get their heads around the COBOL environment which was originally based on punched cards to COBOL program to magnetic tape to COBOL program to and so on; and a stand-offish approach to terminals and GUI developed when the cost of a vector graphics terminal could buy you a small house and a real nice car.

  19. My brother and I were talking about this by rsilvergun · · Score: 1

    They already are moving away from COBOL. That's the trouble. They can't get young guys to work on the old systems because it's basically a waste of 3-5 years of your career. COBOL et al are being killed as fast as they can. After that being a COBOL program is worthless.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:My brother and I were talking about this by outlaw · · Score: 1

      Patently false... Last I checked there were still more lines of COBOL in business and government than all the other languages, combined.

      I'll grant the fact that new comers don't want to get their hands dirty... they want something that enhances the resume for the next job... Something we see with all the 'legacy languages'.

      I played vanguard during the stupid Y2K false apocalypse - writing superviser level code to track storage from a date field all the way through a program, in order to generate a report saying 'This field is a data, or is based upon a date value'.

      I don't plan on doing updating that code for the Y2038 issue, but I fully expect COBOL & PL/I to still be in wide use at that time

  20. Hopper? No. She's the grandmother of COBOL by quarrel · · Score: 3, Informative

    Grace Hopper did not invent COBOL. Follow your own links - there is a whole list of who designed it, and none of them are Grace Hopper. She did lay lots of the foundations they worked upon of course.

    To the question of should they replace it? About the same time as any other language should be replaced - it is a very silly question...

    1. Re:Hopper? No. She's the grandmother of COBOL by Tablizer · · Score: 2

      Grace Hopper did not invent COBOL

      COBOL was ultimately designed by a committee, but Grace's early compilers had a lot of influence on the language design.

      The military and other organizations found it difficult to build financial, logistics, and administrative software for multiple machines that each speak a different language, and thus formed a joint committee to create a common language. (Science and research institutions had FORTRAN for cross compatibility.)

      Basically the COBOL committee grew sour with disagreement. As the deadline for the first specification approached, the committee fractured into a "git'er done" tribe, and a "do it right" tribe. The git-er-done tribe basically cloned Grace's language with some minor changes and additions because they knew they didn't have time to reinvent the wheel from scratch. Grace's language was road-tested.

      As the deadline came up, the git-er-done group were the only tribe with something close to ready, and so that's the work the committee heads ultimately submitted. There were a lot of complaints about it, but the heads wanted to submit something rather than outright fail. (The story varies depending on who tells it.)

      Later versions of COBOL borrowed ideas from other languages and report-writing tools, but the root still closely mirrored Grace's language. Therefore, it could be said that Grace Hopper's work had a large influence on COBOL.

      (It's somewhat similar to the "worse is better" story between Unix/C and a Lisp-based OS: http://dreamsongs.com/WorseIsB... )

      - - - - - - -

      As far as what orgs should do about existing COBOL apps, it's not realistic to rewrite it all from scratch, at least not all at once. That would be a long and expensive endeavor. It's probably cheaper to pay the higher wages for COBOL experts, but also gradually convert sub-systems as time goes on.

      However, whatever you pick as the replacement language could face the same problem. There's no guarantee that Java, C#, Python, etc. will be common in the future. Rewriting COBOL into Java could simply be trading one dead language for another.

      I know shops that replaced COBOL "green screen" apps with Java Applets. Now Java Applets are "legacy" also. (And a pain to keep updating Java for.)

      Predicting the future in IT is a dead-man's game. At least the COBOL zombie has shown staying power. If you pick a different zombie, you are gambling even more than staying with the COBOL zombie.

      If it ain't broke, don't fix it. If it's half-broke, fix it gradually.

  21. Rule Number One by nospam007 · · Score: 1

    If it ain't broke, don't fix it.

  22. Or use in-house education by isj · · Score: 4, Interesting

    2 years ago in one of the banking centers in Denmark 12 new IT-candidate were educated in ... COBOL, CICS, mainframes, etc. The older generation were anxious about how the younglings adapt, but it appears it turned out well. They were excited about the robustness and scalability of the mainframes, not so much about COBOL, but could see it didn't make business sense to rewrite old software. New software is being developed in more modern programming languages.

    source (Danish only): https://www.version2.dk/artike...

    1. Re:Or use in-house education by vtcodger · · Score: 2

      Why is that a surprise? If people could master COBOL 50 years ago, why would they not be able to master it today?

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    2. Re:Or use in-house education by cardpuncher · · Score: 1

      Perhaps there's also the fact that Danes are brought up believing that there may be advantages to speaking more than one language...

  23. Found the LUDDITE! by Anonymous Coward · · Score: 1, Funny

    Only LUDDITES use LUDDITE COBOL! Modern app appers use AppScript and AppApp to app apps!

    Apps!

  24. Might be a hard sell to banks by Rick+Schumann · · Score: 1

    Banks tend to be rather conservative. If it's working now, I would think they wouldn't be too keen to replace it with anything.

    This reminds me of something I heard years ago, which I wouldn't at all be surprised is still true: that there are systems at 'the phone company' (I assume they meant AT&T?) that have been sitting there for decades, running the whole time, that nobody even knows what it actually does anymore, but they do know that Bad Things happen if it stops working -- but all they can do when it does stop working, is power-cycle it, cross their fingers, and hope it starts working again. Is this what's going on with the banking industry and their COBOL mainframe systems? Never mind the world being put back into the Stone Age by another subprime lending disaster, how about some ancient mainframe system running COBOL blowing up and taking the worlds' finances with it?

  25. The answer is YES... YES ... YES by martiniturbide · · Score: 1

    The issue is that there a no new COBOL programmers, you can not get resources out the University that had learned COBOL. So it is a risk for banks to keep their systems on this programming language. It does not mean that COBOL is good or bad, it is just not a language with enough critical mass to reduce the risk of a bank. The owner of that language is not making any efforts to put COBOL everywhere, it is treated as a legacy platform so money investment and innovation it is not going to be put on COBOL today. It is not about how good the language it is compared to other, it is about the market.

    And by the way, to everybody that loves COBOL, please upload everything you can on Archive.org to preserve the language.

  26. And JCL and System 360 Mainframe HLA and CICS? by Anonymous Coward · · Score: 1

    COBOL is not hard to learn. What is hard to learn is the incredibly diverse (read asinine) state of the systems that employ it. The All Star coders that put together these systems are not just retired, they're dead. The people maintaining them are not experts (and this is found out by asking them simple questions about compilation)

    It also neglects to mention what a lot of people fail to mention about learning Java. Java SE is NOT difficult to learn. What is difficult to learn is the myrid array of frameworks that corrospond to it EJB/JPA/Hibernate/JAX-WS etc ... not counting the client side code that needs to communicate with that under the constraints of "system architects" who are usually people preparing to retire with a handful of certs and a belly full of vendor lunch.

    See, the original way these systems were put together are actually quite genius but in the hands of an aging and apathetic and stressed staff who had little to do with it in the first place, the entirety of the environment is completely unknowable as it has been arranged in ways by people who didn't understand what they were doing and even write in the documentation things like (Everything seems to work if you let it be a PIC 90. Bill told me to always do this, and I've kept on doing it since he died last year) [I shit you not ... actual documentation quote]

    See, then there's more ... because there's a variety of things like CICS and Z\OS and system 360 that you have to understand to figure out how to even get to the compiler. There's no IDE for COBOL in actual systems, you have to log in via a PCOM terminal and go through CICS. Then, there's the mountain of access the angry ladies sitting in your old area have to give you and only two of them now how to do it and they know one way to do it that they've done for the past 30 years. It doesn't help if you're a web programmer that makes them have to leave their familiar greenscreen by facilitating the creation of web apps when they don't even have a computer at home nor a smart phone.

    Oh but I'm not done .... then there's the Mainframe assembler routines that have been there for 30 years that no one touches or can understand. There's also something called "high level assembler" which is done using variable names and codes for which no one can remember what they mean.

    Of course then ... then we get to JCL ... If you don't know what that is, imagine a scripting language in which spaces matter ...

    Oh but wait! OBM comes along and says "well you can host WebSphere on Z\OS and make CICS calls to all your lagacy code and still have a web application!" "No need to drop those multi million dollar contracts." "We love you ... You love us ... we're like family!"

    Well let me tell you the fun it is making an AJAX call on a setInterval that has to update data from CICS ... Oh boy! So if you like 4 hour meetings with people literally looking at their watch to retire, with stressed management, and frazzled newbie coders just grappling with HTML and JavaScript ... well you're in for a treat! And by treat I mean an abysmal hell of course =D

    Oh but then there's a wonderful product called TOP Secret ... that according to the old ladies that hate your fucking guts ... you have to verify all security tokens with!

    Oh and wait! There's more! We're Agile with mainframe now!!!

    Fucking Kill COBOL or Fucking Kill Me .... one of the two please!

    1. Re:And JCL and System 360 Mainframe HLA and CICS? by xxxJonBoyxxx · · Score: 1

      >> Fucking Kill COBOL or Fucking Kill Me .... one of the two please!

      The latter - it's cheaper. We just re-up'ed our IBM contract for another 2 years.

    2. Re:And JCL and System 360 Mainframe HLA and CICS? by outlaw · · Score: 1

      Obviously a disgruntled and inexperienced mainframe user - sorry :-(

      And yes, for a customer, I rewrote (from a hex dump) an old ASM routine that they'd lost the source for - simply so I could make it 64bit safe.

      However, one does not need to go through CICS to compile a COBOL program - though your shop may have created a CICS transaction to do compiles.

      As for IDEs, if you don't have ISPF and plugins for most of that, complain to your management! My first IDE was emacs (BSD 4.2) with functions to compile and point me at all the compiler messages.

      As far as Java/AJAX/REST/XML/... yes there are still some rough edges - after all, these are, by and large, bolted on very old (and stable) code.

    3. Re:And JCL and System 360 Mainframe HLA and CICS? by vtcodger · · Score: 1

      "Of course then ... then we get to JCL ... If you don't know what that is, imagine a scripting language in which spaces matter ..."

      That would be bash -- or any other Unix shell script. However, I have to say that even at its most perverse, bash doesn't begin to approach JCL for pointless peculiarity. e.g. IEFBR14

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  27. Give them hefty salaries by OneHundredAndTen · · Score: 2

    Pay them well, and they will come. Isn't that the way it is supposed to work?

  28. Re:YES! by mark-t · · Score: 2

    It would be a mistake to forget it ever happened, because then we would be likely to repeat it..

  29. Should Banks Let COBOL Die? by grep+-v+'.*'+* · · Score: 2

    Why yes, of course -- OBVIOUSLY.

    Let's all jump on the current language of the week. It's of course preoptimized for Big Iron CPUs and IBM DB2 or Oracle databases. We'll write everything over again from scratch using the original business documentation (because who can read COBOL? -- that's the problem!) and this time Do It Exactly Right.

    Those losers from decades ago just didn't know what they were doing at all. Stupideos.

    And then: the month-after-next comes along.

    --
    If the universe is someone's simulation -- does that mean the stars are just stuck pixels?
  30. And for those still running batch systems... by Two99Point80 · · Score: 1

    ...there's JCL.

  31. Re:Again? by Anonymous Coward · · Score: 1

    A 5 second search on a single, non-Mainframe specific job site disproves your assertion that there are "no COBOL jobs". Might be wise to learn the difference between your reality and objective reality before commenting.

  32. Re:Translate COBOL to other languages? by outlaw · · Score: 1

    > I've had to resort to using FORTRAN to C converters several times, mainly to turn code written by scientists into something useful in a product. It was ALWAYS worth the effort!

    Really ? Do you not understand the largest difference in FORTAN and all other current languages ?

    In many applications, the difference may not be noticable, but in many mathematical cores, the transformation is fatal !

    FORTRAN stores arrays in Column major order, whereas nearly everyone else stores them in Row major order.

    This difference can be the difference betwixt high order page/cache/tlb misses, and running/scaling smoothly

  33. COBOL wont die, because then big banks will fold by adosch · · Score: 1

    COBOL is unbelievably ingrained into the fiber of banking, and the developers surrounding it are seriously seasoned veterans in the realm of batch code, deployment and support.

    Not only did I go to a university in the early 2000's that actually taught COBOL, JCL, VSAM generation and use, emulation mainframe 'green screen' interfaces (the actual language we used escapes me now 16 years later - ACS? ASC?), AS/400 exposure, even fucking assembler (and not for computer science C/C++ brats dumping out compiler interpretation) for one reason only: Citibank, Federated Insurance, Wells Fargo, FIS, Bank of America all were extremely heavy players in that degree path at that university. Hell, our professors who taught those banks of classes were soon-to-be-retired Citibank senior developer vets teaching us their standards, techniques, and tons of this-is-the-difference-between-academic-code-and-real-world-code lessons. So as much as everyone makes this baseless argument about how it's dying --- even back in early 2000, after the Y2K scare, it seems like the big banking brains were setting themselves up for long-term rollover of fresh meat to take on the mainframes.

    I actually went on to work at Citibank for a few years, but I worked on the front-end and middle-ware vs. the back-end mainframe, even with all my newly fresh COBOL skills. All I can tell you is: that shit isn't going anywhere. I know plenty of people who still hack COBOL for a living. And as long as banks still push the agenda at universities and kids who are intimidated by computer science take these courses, not only will it still be taught to a fresh crop of students, it means that bankers know money and also know how much fucking money they'd lose migrating away from it in any sort of planned manner.

    Has IBM stopped making AS/400 iterations past it like the System I and such? Hell no. All the answers are there. COBOL is here to stay.

  34. A colleague of mine in the 80's once said.... by mark-t · · Score: 1

    COBOL programs are really just giant program comments that have delusions of actually running.

  35. Don't let COBOL die... by QuietLagoon · · Score: 1

    ... let COBOL retire. Come up with a strategy to replace COBOL, execute the strategy, then allow COBOL to retire.

  36. RH issue is a programming issue now? by Ducho_CWB · · Score: 2

    Lets rewrite billions of lines of code and systems worldwide because we can not afford to hire COBOL devs (or make it attractive to other devs).
    Oh, wait...

  37. Let the invisible free hand of he market decide by Pig+Hogger · · Score: 2

    Just pay COBOL programmers big enough salaries to attract younger talent Pay them, and they will come

  38. Re:What about... by desdinova+216 · · Score: 1

    maybe if you put the right cover sheets on the TPS reports there wouldn't be a problem?

  39. No, please, don't by reanjr · · Score: 1

    I have every intention of spending the twilight years of my career working on ancient systems for a huge premium, so I say keep it around for the rest of us.

  40. Learning new language can be done quickly by Eravnrekaree · · Score: 1

    as others have said here, its not at all hard to learn the language and many of us have. With the unemployment problems we have with american tech workers and the unemployment problem we have in the country (unlike the official statistics, the real number is more like 10-15% because people who have given up are not counted), its hard to argue that you cannot develop and train workers to work on this technology.

    About 90% of learning the job is learning the *application specific* layout of the program, learning a language is very minor to that in comparison. Once you learn each of the major common categories of languages, mainly procedural, relational, parsing, markup, learning new languages is easy, its not like learning a human language, since using programming languages you have the benefit of using language documentation as you go, rote memorization is unnecessary and actually a waste of time. No one memorizes every API, not unless one has savant capabilities. Learning a new computer language can take, a week or two, if that. I learned C# in a few days (as far as being able to read and write the core language). You use references for all of the APIs. People can be up and running with new languages in no time.

    This idea "we cant find workers who have 5 years of experience with language X" is the line of middle managers who don't program themselves and dont understand any of this, and think its like a human language. Its a nonsense argument. We can train programmer for COBOL in a very short period of time.Learni

  41. Citibank Ad by amxcoder · · Score: 1

    Is this an ad for Citibank looking for an experienced COBOL programmer to fix the issue in the previous story about the woman who was 110 year old and the bank software couldn't handle an age that high?

    They need to fix it, but they can't find any COBOL programmers! Doh!

  42. Big Problems With The Suggestions by Anonymous Coward · · Score: 1

    There are massive problems with Doderlein's suggestions:

    1). His third option, clearly the one he's selling as "the cheapest and probably easiest", is fatally flawed. This suggests that you can 'plug-in' modern modules to a COBOL core. This is a services oriented view of a systems architecture, and guess what? None of the COBOL legacy uses a services architecture. It is routinely monolithic code blocks. One program (or a very few programs) do all the work. There are multiple steps to be performed and long ago, those multiple steps were all integrated into one logic block. Integration is good, right? Don't you want efficient code (and efficient code back in the day was much more important than today)?

    2). As others here have noted, option 1 is also poorly worded. Since when is "do nothing" a plan? That's not realistic nor is it a plan. The real plan is to start training new COBOL programmers as a long-term play to keep COBOL relevant and your workforce alive and available. Also, increase their wages as an incentive because you need an incentive to keep IT people interested in old technology.

  43. I work with a former COBOL programmer by rickb928 · · Score: 2

    And he's a tedious pain in the A$$. Self-righteous, gloating over the shortcomings of the current crop of apps, reveling in the agony of the kids struggling to release even the most minimal upgrade without 3 fast followers and a deferred feature request until they get enough points banked to figure out something new. He loves their failures.

    And our COBOL systems do hum along.

    We spent $2 Billion over 7 years on a new core processing platform, written in something 'modern'. It was hell. And it is one of 7 core processes. We are now working on using 'Big Data' to replace another core platform, and I swear they feed it quarters to keep it running - yes, we abandoned Hadoop, but Cassandra isn't much better for my app, we never get the resources we need, and as they convert even these relatively simple apps, we go through a cycle of redesign/minimal deployment/discover massive problems/rewrite/deploy minimal features/add in necessary features/discover problems with all supporting systems/implement error handling and alerts/re-budget to accommodate the real cost/start a new feature cycle... Fortunately we measure most of these events in single-digit months instead of single-digit years. Good bye Websphere, we hardly loved ya.

    COBOL need not be replaced for core, transaction-bases systems, but the pressure is enormous. For financial institutions, being able to count on reconciling cash flows reliably cannot be overvalued. Some stuff just has to work. It doesn't have to be 'modern', whatever the hell that means, it just has to work.

    --
    deleting the extra space after periods so i can stay relevant, yeah.
  44. Re: Translate COBOL to other languages? by Miamicanes · · Score: 1

    The fundamental problem with auto-translating COBOL into something like C(++) or Java is the fact that the resulting code might be semantically-valid C(++) or Java that successfully compiles & runs, but it would probably be almost impossible for humans to make sense of, let alone safely modify in the future.

  45. Re:Again? by Dawn+Keyhotie · · Score: 2

    When COBOL programmers start retiring, they will train their H1B replacements. What, did you think the banks would hire American programmers? LOL.

    --
    "The only good windmill is a tilted windmill."
  46. CSS in COBOL? by Hognoxious · · Score: 1

    Is it possible to do CSS in COBOL?

    I think someone might have tried.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  47. Re:COBOL is still quite valid for use... by bws111 · · Score: 1

    If Java, Python, and C support decimal operations, then why are a class, a module, or a library required? COBOL, on the other hand, directly supports decimal numbers. Two fixed point numbers can be read in, then operated on directly, then written out with no conversions. And the operations (add, subtract, multiply, divide, format, etc) are done with a single machine instruction (on a mainframe).

  48. Re:COBOL is still quite valid for use... by mark-t · · Score: 1

    To do anything in C you need to link to a library. Modules are also standard in Python. The BigDecimal class is part of the standard JDK.

  49. Just pay enough. by dpbsmith · · Score: 5, Interesting

    I remember this coming came up during the Y2K flap. COBOL programmers are dying out because companies have decided, for whatever reason, that they aren't willing to pay them much. A quick Google search--I don't know how reliable--shows me:
    COBOL Sr. Software Engineer / Developer / Programmer $88,049
    Java Sr. Software Engineer / Developer / Programmer $103,239
    But that understates the difference because the various job titles shown for COBOL positions are predominantly lower-sounding and lower-paid positions.
    As several have said, COBOL isn't hard to learn--I don't know it but I crammed it once for a test. Like all languages it takes a while to get good at it, but it's not specially difficult, nor is it specially bad.

    The best strategy would be to render unto COBOL what is COBOL's--keep good legacy systems in COBOL--and pay enough to give people a reason to learn the language.

  50. Re:COBOL is still quite valid for use... by bws111 · · Score: 1

    Huh? You can do binary integer and floating point arithmetic in any of those languages without any libraries, classes, or modules. You can only do decimal operations in those languages by either converting the decimal numbers to binary, operating on them, and converting back or by calling something written in a different language. Hiding those things elsewhere does not magically mean that the language supports decimal.

  51. No. by PPH · · Score: 1

    Betteridge's law notwithstanding, the next question will be what to replace it with. And the attempts to answer that will devolve into a clusterfsck of trendy languages du jour. And by the time some poor bank has funded the effort to port to something, that something's advocates will have moved on and the replacements will claim that the choice was all wrong and divert the effort to their new favorite.

    --
    Have gnu, will travel.
  52. I am amazed by fleabay · · Score: 1

    that banks are allowing the users of Slashdot to decide whether or not some programming language dies. Even more surprising is that everyone who is not a bank would go along with the decision, which would be required to kill off said language.

    And of course there is Betteridge.

    What a stupid topic.

  53. Re:COBOL is still quite valid for use... by mark-t · · Score: 1

    The process you describe for those other systems is exactly what is done with COBOL when it is run on a microcomputer that does not have those native decimal instructions. For what it's worth, intel's binary decimal128 has 34 digits of (exact) precision, which is pretty close, but also has the advantage over COBOL's mechanism of also being able to store an exponent on the number. allowing the same variable to hold values of different orders of magnitude without the application needing to know what those magnitudes are.

  54. Depends on what you count by Roger+W+Moore · · Score: 1

    Because it's cheaper.

    That depends on what you count. It might be cheaper in the short term to keep patching together an increasingly obsolete and aging system than to develop a new modern one but if you look at the longer term the higher maintenance costs add up. On top of this there is a lost opportunity cost: you could miss out on new, profitable technologies and methods if you have an older, less flexible system which is why banking innovation seems to be increasingly happening in companies outside the sector e.g. things like Apple pay.

  55. How about we let the banks decide! by Tony+Isaac · · Score: 1

    If they can find Cobol programmers, more power to them! If they can't, let the survival of the fittest weed out the banks that won't do what it takes to survive.

  56. Don't unemploy time travelers by helpfulcorn · · Score: 1

    Wasn't this or a related reason as to why John Titor came back in time? If we get rid of COBOL wouldn't that mean he would not have a reason to come back... or wait does he come back because we get rid of it?

  57. Re: Translate COBOL to other languages? by bugs2squash · · Score: 1

    How about instead writing something that correlated inputs and internal state or outputs to auto-generate test cases. That would be a useful basis for maintaining the current system and developing future systems.

    --
    Nullius in verba
  58. Every single year by mwvdlee · · Score: 1

    We have this discussion every single year.
    The fact that we have this same discussion every single year should tell you that COBOL is probably going to be around for another year.
    See you next year.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  59. Hard to feel sorry for the issues banks are having by cyber-vandal · · Score: 1

    Given that they threw a load of us COBOL programmers on the scrapheap for being "too expensive" after Y2K. Not as expensive as not having us available is it you bunch of pricks. Have fun spending billions rewriting it all.

  60. Trade-offs of change by SubaruStarship · · Score: 1

    Any LOB (Line Of Business) application will require periodic tweaks and refreshes to remain relevant to operations. Depending on the business, the amount of time between required changes could be measured in days, months or years. Regardless, when the time comes, a choice must be made. The decision is between either improving (in the "remodel" sense) upon an existing application, developing an entirely new one, or adopting/adapting a COTS (Commercial Off The Shelf) solution.

    For incremental changes, improving on an existing application is likely the least negatively impactful solution. The procedures associated with the software upgrade process should already be fully baked within the organization. Retraining costs--both time and money--will be limited to application changes only. There won't be a need to maintain side by side systems like there is while proving out an entirely new technology. TCO (Total Cost of Ownership) is understood.

    However, it's always worth considering what positively impactful changes a new, custom LOB application or COTS solution could provide. It could be that the hardware required to run it would be cheaper or more readily available. It could be that the programming talent required to maintain it would be cheaper or more readily available. It could be (in the case of COTS software) that hiring people familiar with using and supporting it would be cheaper than training them to use and support a proprietary solution. And, of course, it could be that it offers desirable features that are cost prohibitive or technologically infeasible to implement in a legacy LOB application.

    Which solution you choose depends on how risk averse you are, how much money you have to spend, and whether you need to gain a competitive advantage over (or catch up to) your peers.

    COBOL is an old language, and it is still used in a lot of places. Just like a human language, it will continue to exist for as long as there are people who choose to use it. As to whether it should be abandoned in favor of newer languages, I submit that the same argument could be made for phasing out most of the world's time honored human languages. Why continue to use something that has bizarre syntax rooted in ancient history? Maybe because it continues to work, regardless its accumulated cruft. (I don't see much traction to adopt Esperanto as a world standard!) Unless we go out of our way to shun and discourage the use of COBOL, I suspect it will continue to be used where applicable for a long time to come. People who don't want to use COBOL are welcome to use something else. There is no shortage of languages.

  61. There is a fourth option by 91degrees · · Score: 1

    Train developers.

    One procedural language is much like the next. Once you learn the syntax, the basic ideas and concepts are transferable. Most of the COBOL developers who built these systems learned most of what they know on the job.

  62. Language by ledow · · Score: 2

    Why does the language matter?

    I have to learn all kinds of new, esoteric and niche languages all the time as part of my job.

    Surely what you want is to hire a business or banking programmer and make sure they are then made competent in COBOL (gosh, maybe you could utilise your ageing COBOL workforce to teach him?), no different to bringing in a guy trained on a competitor's system and training him on YOUR system.

    It worries me that a bank would be hiring a programmer who *can't* do several languages, especially languages that have been around for decades rather than languages utilising entirely different paradigms, or that can't pick up new ones as they appear.

    If you hire some - I don't know, whatever the language of the moment is, say Java or something - programmer to replace all this system, you'll have a system tied into Java. Which will, as Java is starting to show, start to get replaced itself by the time that guy has gone and you've only got rookies running the place on the old-guy's code.

    Massive expense, to be back to square one, after decades of dodgy code that was trying to stabilise.

    Advertise for programmers, teach them COBOL as the "in-house" language. Then, so long as your business systems have the tools for them to create and execute those programs, you're sorted for a long time yet. You don't even need to care that every other bank in the world has moved to Java or whatever if you do it right and have standardised interfaces or conversion tools.

    I think this is not related to "we can't find people who could program in COBOL" as much as "we already have a bunch of cheap outsourced programmers who only know Java and they can't learn anything else".

    The time taken to familiarise yourself with such a critical codebase to the point of confidence in pushing your production code should VASTLY outweigh the time required to actually learn something like COBOL from scratch, in this kind of industry.

  63. Wrong criterium by jandersen · · Score: 1

    The right criterium is not how old or old fashioned something is - if it does the job better than something newer, then it is the newer technology that isn't good enough. One of the things about COBOL is that it is in many ways such a simple language, compared to modern ones; the complexity is mostly the very heavy syntax and convoluted attempts at using language that would have been seen as solid, American and business like in the 50es. When you get down to the actual code that does something, it is surprisingly close to assembler in many ways:

            ADD NUMBER TO ANOTHERNUMBER.
            PERFORM PROCEDURE1 25 TIMES. ...

    I think there is very little to optimise from the compiler side, and the lack of advanced syntax may well be a major advantage - business transactions are computationally very simple and mostly only require the things that COBOL does. I think, if one were to seriously replace the language, it should be with something equally simple - a kind of COBOL with a lighter and less convoluted syntax, and it would probably lose the identification and environment division. Things that actually make the code clearer to read would be added, like procedures with parameters, to avoid using global variables etc. Who knows, it may already exist - I haven't used COBOL for decades, and I think I have heard the term 'OBJECT COBOL'.

  64. One word.... by rholtzjr · · Score: 1

    YES

  65. The editor by SCVonSteroids · · Score: 1

    Wrote this article with a big smile on his face, silently whispering "hahaha! I'm really going to piss off those stupid slashdotters today!"

    --
    I tend to rant.
  66. If I was the cynical kind, which thank the Lord I' by Hognoxious · · Score: 1

    If I was the cynical kind I might be tempted to think that this Dunderloon character is selling something.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  67. Where are these Cobol positions? by Qbertino · · Score: 1

    Serisously: Where are these Cobol positions in desperate need of filling?

    If they really are desperately needed, they should translate into 80 000€+/Year, 40 hour workweeks, 30 days of vacation, zero-fuss relocation support and some other niceties. Give me that and I'll drop my current hard-pressing hipster-induced TypeScript/JS/NodeJS ambitions instantly and dive into Cobol right away. I'll be the Cobol master in a year and enjoy it aswell. And as a guy with ERP/E-Commerce order processing experience, I get serial processing (which banks still do for transactional safety) and other old-school super-conservative ways of doing things.

    But somehow something tells me they want people no older than 28 with 10+ years of Cobol experience and top-grade proficiency with Oracle 4.x and some obscure version of AIX. And offer a laughable 44 000€/Year and I have to move to Frankfurt, a town that is ugly as hell and has real-estate and living costs move off the charts big time, even more so since Brexit.

    So, unless I get a call by a banking Ops manager telling me that he's in desperate need for Coders willing to move to Cobol and if I would care to give it a shot and offers me something along the lines stated in the first paragraph, I'm not really holding my breath or feeling to much pitty for the banks.

    My 2 eurocents.

    --
    We suffer more in our imagination than in reality. - Seneca
    1. Re:Where are these Cobol positions? by ledow · · Score: 1

      Agreed.

      A quick hunt around UK jobsites shows a number of large companies (not banks) looking for COBOL programmers in the £35-45k range. That's the price range of someone who just does basic network management, who can be replaced in seconds.

      The banks aren't giving salaries but they state benefits, etc. but much of their job descriptions are "experience with finance stuff" with COBOL thrown in occasionally.

      Though I'm sure it probably is harder to find a COBOL programmer than other languages nowadays, they aren't trying very hard to attract them based on searching "COBOL" on a number of jobsites. Either what little demand there is is being met, or they just aren't advertising them at all.

  68. Well there's always option 4 by kilodelta · · Score: 1

    Which is to train people in COBOL again. I learned it during my time at university. It isn't a difficult language to learn. I've just never used it since.

  69. You are not mean to be a programmer .... by johnlcallaway · · Score: 1

    ... if you can't learn COBOL in a week. It's all about syntax, and it's really not that difficult.

    I've jumped from language to language my entire career, the first one was only the most difficult because I had to learn constructs like 'if .. then .. else' and looping and such. And recursion, which old COBOL didn't support anyway.

    If someone can't translate their current skills into COBOL, they have no business being in computers at all. Languages change all the time, and if you can't learn a new one quickly, you have no future in the business at all. Hell, I once modified a program written in a language I had never seen before and had no manuals for.

    A developer's goal should be to become proficient in many language, and at least knowledgeable in many more. Just last month, I had to read COBOL code in order to write a Java program because the files were created by a COBOL program and I had to know figure out to process EBCDIC files with COMP data into a class and what each field was for. No one on the team had a clue ... it took me about 2 hours.

    But I'm old and have skills because I've never said that I don't know how or can't do something. Instead of whining like a little baby when given a small challenge.

    --
    I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
  70. Re:COBOL is still quite valid for use... by bws111 · · Score: 1

    Well yeah, it is the job of an optimizing compiler to produce the most efficient code for a particular architecture. Of course, the compiler can only do that if the language supports a particular type of data. If the language doesn't support a particular datatype, then you can't do anything at all with that type of data. Which is why the gmplib has all the important stuff written in assembler (not C) - because C does not support decimal operations.

    The question is not whether or not you can do a certain operation in a given language. You can do damn near anything in any language. The question is can you do it efficiently. The 'C' implementation is probably the least inefficient, but it is still worse than native support. The Java and Python implementations are ridiculous wasters of cycles.

    Also 'INTELS' decimal128???? Seriously?

  71. decades worth of hacks by DarthVain · · Score: 1

    This. Add to that a lack of documentation, or if you had documentation it would be thousands of pages, not all of it even relevant anymore.

    I maintain a number of legacy systems, while not COBOL (I did take COBOL in school ages ago), it doesn't really matter a whole lot what it was developed it. The larger problem is that the system was likely designed to do something very specific, then over the years has been altered and re-altered by who knows how many people (some good, some not so good, none of which are around anymore), to try and keep up with changing business rules. In some cases due to technology limitations these alteration need to be "creative" in order to try and deliver on some requirement not easily done by the platform in use. In a lot of cases the underlying DB structure makes little to no sense anymore because the system does something a lot different than what it was intended for. Half the time you are left guessing why a certain thing was done a certain way at some point in the mists of time. Yes these systems would be extremely hard and expensive to replace, which is basically why they have hung around for so long.

    I have one current project to try and modernize a particular system slightly and it has been a nightmare. Every time we change something it breaks 6 other things many of which seem totally unrelated on the surface, then we fix those things which breaks other things, repeat ad infinitum, and it just gets more and more complicated. In many cases part of the problem is that we're doing things from scratch (re-inventing the wheel so to speak), which if we were using other technology would basically be built in to start with. The system itself is almost 30 years old, and I think it is starting to reach it's development saturation point, meaning it is only going to become more difficult (and expensive) to continue to make any changes, at which point management will have to decide if they are finally willing to bite the bullet and migrate to something a bit more reasonable. That said I've literally been actively championing that for the last decade, yet here we are... On a more humorous note, the other day I was testing very deep (in an attempt to break the aforementioned infinite development loop) and found part of the application that I have no idea what it does, and so far as I can tell does nothing (though seemingly nothing to do with my project). Curious I went through old documentation from the late 90's and found that even then it's function was "unknown", anyway I had a bit of a laugh at that at least. Literally no one has known what that function does for the better part of 20 years, and yet it is still in there.

    Another non-COBOL related, but similar issue is at one point I was complaining about the output of a particular system because it feeds into several systems I have to try and maintain. After a bit of investigation (and it took awhile to even find someone that has been around long enough with this bit of knowledge), I found that the system in question is even *older* than any of my other systems, written in FORTRAN, nobody knows how it works anymore (other than it does it's thing and presumably spits out seemingly correct numbers), and no one is willing to touch it with a 10 foot pole for fear of breaking it... So I am stuck dealing with that for the foreseeable future. Not sure if FORTRAN programmers are easier or harder to find than COBOL, but even back in the day I never took FORTRAN in school. I'm sure that will be an interesting project when someone has to eventually deal with it...

  72. Replacing the culture is harder by ErichTheRed · · Score: 1

    I'm not a mainframer but I do work in another industry highly dependent on them (airlines.) Some of the core components of major passenger processing systems like Sabre, Amadeus, etc. are still kicking along on mainframes. A lot of the COBOL has been refactored into something more modern but some things are much harder to replace. Also, a lot of the stuff that's non-core has been migrated to more open systems so it's cheaper to run and easier to change. But, the thing to remember about airline applications is that all the customer-facing stuff like kiosks, web booking, RFID baggage tracking, etc. rides on top of this ancient core. When you do something on an airline website or check in at a kiosk, the software running there is usually reaching down into the mainframe either directly or through an equally complex web of services, wrappers, etc.

    I think one of the reasons mainframes refuse to die is because nothing has replaced the "uptime culture" surrounding them. For example, I love x86 virtualization and cloud computing because I can instantly start up any environment I want, use it, and rip it down whenever I'm done. Mainframes don't really have that -- the goal is 100% uptime which is why businesses like banks, insurance, airlines, etc. rely on them so heavily. To achieve that, the culture around the mainframe is to have expert systems programmers who know the ins and outs of the system, and to test everything to death before rolling it out to production. It's incredibly rare to see code updates severely break anything, and part of the reason is that the culture is to not touch things that are working "just because."

    It's very easy to say "oh, just rewrite everything in Java and rip out the mainframe." It's much harder to instill the discipline required to maintain core systems that can't ever go down, can't corrupt data and are vital to a business. Replacing veteran system programmers with a bunch of 20-something bros refactoring in 18-hour code sessions while doing shots, or an offshore body shop of 1,000 Indians who took a COBOL course is a culture shift.

    From what I see, companies are dealing with the COBOL shortage by going the body shop route rather than train new grads. I think that new grads would be perfect for this kind of work, because it exposes them to good change management practice. Then again, I'm a big believer in the apprenticeship/trade guild system for training software and IT pros. Right now, companies want drop-in replacements for new hires and anything other than the new hotness on your resume gets it trashed. I'm very lucky to have been able to work in environments with a healthy mix of new and ancient, and it's been very helpful career-wise to at least have an idea of what's going on in the legacy side of the house. Even if I really don't know what's going on under the hood, it's better than throwing your hands up and refusing to touch something, saying "I'm a Windows/Linux admin" or "I'm a Java developer"

  73. Joke by elistan · · Score: 1

    A COBOL programmer, C++ programmer and Java programmer go to the bathroom at the same time. After using the facilities, the C++ programmer washes their hands and uses a tiny bit of paper towel to dry off, using every bit of the towel. The Java programmer grabs a giant wad of towels to dry their hands. The COBOL programmer walks out without washing their hands at all. "Whoa whoa!" the other programmers say. "Aren't you going to wash your hands?" The COBOL programmer responds "Kids, I learned a long time ago how not to piss on my hands."

    (Originally, I heard this joke a long time ago using mainframe, Windows and Linux admins.)

  74. business' processes have co-evolved by DarthVain · · Score: 1

    The real problem isn't COBOL as a language. It is understanding huge highly customized systems that have evolved over decades of changes and being familiar with them enough to be effective. The problem is in many cases no one keeps IT staff on anymore. They are seen as a commodity. Everything is done by consultants now. In many cases it is the same old consultants, so it works for a time. However when they are gone, things get exponentially more difficult to try and maintain.

    I had a laugh at your last sentence, pretty much the entire industry in a nutshell!

  75. IIABDFI by Fudoka · · Score: 1

    If It Ain't Broke Don't Fix It

  76. Re:So train the next generation of COBOL programme by SCVonSteroids · · Score: 1

    They're probably too short-sighted and assume that this lack of talent will result in the only remaining talent asking obscene amounts of money (obscene to the bankers, that is).
    You're right, though. That is the solution they need to use, it's just not obvious to people who don't do software. That problem isn't singular to banking either.

    --
    I tend to rant.
  77. Is learning COBOL really that difficult? by hackel · · Score: 1

    As a software developer, the language I use is largely irrelevant. Sure, each language offers its own advantages and quirks, and it might take from a few months to a year to get completely comfortable in it...but honestly, that's nothing. If COBOL developers really are in such ridiculously high demand as this and countless other articles claim, why aren't more developers flocking to the language? What is preventing this? I don't understand. I would certainly consider it myself if I found myself in need of work, and supposedly there are a lot of IT folks getting laid off left and right. This "problem" just seems odd to me.

  78. Fourth way by TheSouthernDandy · · Score: 1

    Funding academic CS work on COBOL-to-C, or maybe even COBOL-to-C++, source transformations. They could start with any of the hits a "COBOL to C" Google search provides.

    1. Re:Fourth way by michael_wojcik · · Score: 1

      This impressively bad idea has been tried many times.

      The results were always impressively bad.

      Really, it's hard to see how anyone with a passable knowledge of both languages would think that a source translation of COBOL (legacy or modern) to C (pick any rev of the standard you like) would produce source that is easier to maintain.

      And I say that as someone who does more work in C than any other language (though I also professionally write code in COBOL, C++, Java, C#, Javascript, occasionally PL/I, and many scripting languages; and I've used dozens more over the years). Well-written C can be very readable and maintainable. Machine-generated C rarely is. Machine-generated C that is attempting to exactly replicate the behavior of a non-trivial program written in a very different language is doomed.

      Fortunately, there is absolutely no advantage to doing this sort of source translation, so it doesn't matter that it's a terrible idea.

    2. Re:Fourth way by TheSouthernDandy · · Score: 1

      Well-written C can be very readable and maintainable. Machine-generated C rarely is.

      Totally agree, based on the source I've seen dumped out by various tools. However, the question is whether it needs to be that way. I don't think it does, and that comes down to the research part. I know "Deep Neural Net" is treated like magic pixie dust to solve everything, but what if unreadable machine-generated code is a non-linear transformation away from readable, maintainable code? If it is, then would COBOL-to-maintainable-C be impossible? If we can't answer that with more than opinion, then it may be worth taking a look at seriously.

      Yes, I realize the 95% correctness of a trained NN would result in awful correctness checking exercises, and there would undoubtedly be labor-intensive steps, but if it's that or "let the system collapse or rot", I'd choose moving ahead. Then again, maybe the problem's not that serious.

    3. Re:Fourth way by michael_wojcik · · Score: 1

      OK, I'll admit that's an interesting thought. It's certainly true that there's no technical barrier to producing fairly readable machine-generated code, though whether I'd use machine learning to do it is something I'd have to think about. Producing a design that's comprehensible to a human reader, and meaningful comments, would be harder. But this would be an interesting area of research.

      The main difficulty in transforming legacy COBOL is probably the control-flow graph, given COBOL's accommodation of overlapping code paths and the wild abandon with which that has traditionally been used by developers. When we compile traditional procedural COBOL to inherently-structured targets like CLR IL, we often end up creating very large methods because the only alternative would be lots of tiny methods and a huge amount of state, in order to preserve COBOL semantics. And it's hard to make huge methods, or huge C functions, easy for human readers to understand.

      But, as I say, machine translation to readable code would definitely be an interesting area to investigate.

  79. Love Affair by GerryHattrick · · Score: 1

    I loved COBOL in the 1960s, even though compiling it on a bank of magtapes could take all night. It was almost self documenting, and you could debug by reading your code across the tops of the 80-column source cards. More recently I saw a US software house trying to adapt their steaming pile of COBOL to a UK corporate: even the field-lengths were a disaster. But from a much more senior perch, I was never able to recommend a plain-language improvement (APL was fun but too quirky). Now that use-cases are routinely object-mapped, with parseable definitions, why can't the current generation design a problem-oriented upper layer for management to approve? And why can't inheritors of COBOL puzzles reverse engineer their sources (if they can be found) and map the stuff out properly for whatever gizmo is fashionable now, to error/ambiguity-check in an attractive GUI and then auto-code?

  80. Article is definitely wrong... by foxalopex · · Score: 1

    First ask yourself is Cobol good for what it's used for and is switching to another language "better". A lot of languages are created for a specific purpose and when something better comes along, that's when you should probably phase it out. Switching to another language so I can get a cheap / inexperienced programmer who will likely make a huge mess of it is not a good idea.

    Second, anyone who calls themselves a reasonable programmer should be able to adopt another language. It might take them sometime to become efficient or skilled at it but the point is a good programmer should be able to pick it up. I remember in my final year of university we got exposure to some downright weird or difficult to program languages like LISP and we were still able to make do.

    Third, ignoring the issue is the equivalent of saying "Screw it!" and kicking the bucket down the road making it someone else's problem. This is never a good solution, have a phase out plan, train some employees or a fallback. Don't just wait till your last skilled programmer retires and you're now up the creek without a paddle.

  81. my economy by micahraleigh · · Score: 1

    I have the raw energy to make the move into a language where businesses allowed old people but I'm making too much doing C#.

  82. Re:No, because they'll have H1B's do the conversio by Megol · · Score: 1

    Then you'd be rich by suing companies that loose money in their business systems. But you aren't, money aren't lost/stolen by code and the lie is yours.

    Financial rules are very strict. There's a reason why IBM spent a lot of effort supporting decimal floating point in hardware, it is more suited for financial rounding etc. Think they did it for fun? Think they did it to help javscript-class programmers that can't comprehend standard floating point arithmetics? Nope.

  83. Of course, there's a fourth option... by cshark · · Score: 1

    One thing you need to understand about programming languages, is that they're like comic book villains. They do die, but they're never completely dead. I learned COBOL for fun a few years ago, seeing it through the eyes of a modern programmer. It's unique among programming languages, I find the syntax remarkably straightforward, after you get used to some of the underlying concepts it's predicated against.

    I think the language has possibilities. Especially in an age where the human computer interface has moved from keyboards to voice. It would be amazing if you could do the kinds of complex programming tasks by voice that you see in Star Trek, and I think we're only a few years off. Here, COBOL is really the only language that makes sense for the task. Well, for the most part, and barring some of the more recent additions to the language, that is. No such application exists for it, yet, but it certainly could. And something like that will certainly be both needed and wanted in the coming years.

    As far as the banks go, you have to understand business. If a system works properly and needs very little maintenance, there is no business case for replacing it. It's not like anyone runs websites with COBOL these days. Typically, it's the language of big iron mainframes, that were designed to last forever. If the current group of COBOL programmers does die out, it makes sense to train new ones. There's still a fair amount of demand for it, which will appeal to the mercenary nature of modern programmers.

    I don't think that's an outlandish suggestion. We pay people to learn new things all time, even programming languages. To pretend that banks are somehow different than any other big organization, anywhere else, in any other industry is silly. Let's just call this what it is, stop worrying about it, and move on.

    --

    This signature has Super Cow Powers

  84. Old doesn't mean it doesn't serve by bferrell · · Score: 1

    If it did, we should junk our running and serviceable cars and buy the latest new shiny thing being offered Who cares what that costs?

    What drugs are these people on?

  85. There's an apt metaphor for this by eric_harris_76 · · Score: 1

    The term "technical debt" would seem to be especially helpful in explaining the need to phase out those COBOL programs as quickly as prudently possible.

    If anyone ought to get the aptness of the metaphor, it should be people in the financial sector. How debts not paid keep growing until disaster inevitably occurs. And if a firm has a disaster, it goes out of business.

    At least, that's what I would have thought before 2008.

    --
    There's no time like the present. Well, the past used to be.
  86. They Can't Afford to.... by Stubbyfingers · · Score: 1

    Sorry to burst your bubble, but it would be seriously cost prohibitive to re-write all the COBOL applications banks use.

  87. Auto-translating [Re:COBOL isn't hard to learn] by Tablizer · · Score: 1

    Anyway, as long as languages have similar concepts, procedures/functions in Pascal/Modula versus functions in C and records versus structs, the transmorgifying is straight forward.

    COBOL allows a kind of "hierarchical data dictionary" where parts of a "struct" can have their own name so that you can reference subsets (tree branches) to process as a group. Most languages we use today don't have anything equivalent directly in the language. It can be reinvented in API's, but it's probably harder to read and work with than COBOL's native structure. It's somewhat comparable to XML for custom data structures.

    And C and Pascal are probably influenced by a common language, perhaps Algol, which is arguably a "cleaner" variation of Fortran. COBOL is a very different kind of animal from Algol-influenced languages, including its type system (if you can call it that).