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.

383 comments

  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 Anonymous Coward · · Score: 0

      @Programming_language_version_of_musical_chairs(

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

      )

    2. 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.

    3. 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.

    4. 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.

    5. 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...

    6. 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.

    7. 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.

    8. 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.
    9. 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.

    10. 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.)

    11. Re: Why not? by Anonymous Coward · · Score: 0

      I'm calling BS on this. AS/400, RPG in all variants, is not fucking fragile. You're full of shit. There's a reason code from the 80s is still holding financial systems together, and that's because it's rock fucking solid.

      If you're a thick enough to be doing UI on AS/400s in RPG after the mid 90s, then you're doubly crap unless it's mass data entry.

      The fact you claim you're doing mobile, yeah, that's touch - not. You're nothing more than a "web dev" that thinks HTML and copying jquery code from a forum makes you a developer.

    12. 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.

    13. 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.

    14. 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. :)

    15. Re: Why not? by Anonymous Coward · · Score: 0

      I don't care much for COBOL, but I can Google. DB/2 supports Unicode and Microfocus supports Unicode.

      I could fact check the rest of what you wrote, but I'll assume you didn't bother checking before writing that either.

    16. 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.

    17. Re: Why not? by Anonymous Coward · · Score: 0

      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.

      I don't much like Cobol, but I spent many years learning it and training others in it and I can say without doubt you are full of shit. really would it be so hard to google some of your items before letting your ignorance vomit into a comment either that or you haven't looked at Cobol for many decades. either way you should not be commenting on something you know nothing about.

    18. Re: Why not? by Anonymous Coward · · Score: 0

      It does not, as a rule, support Unicode.

      Ibm says: 'COBOL does not have a native UTF-8 data type'

      Do you think all these 85 - 95 era systems in the us have any idea how to deal with modern character sets? NO.

      Do you think American travel / banking systems have any idea? They do not--I can guarantee you.

      esp since the original programmers are dead/retired? If you think replacing these systems is expensive, wait until you see the bill to bolt in ugly layers required, where modern, organic logical components store the extended data on input and merge it back in on output.

      Like I said -- it's not something the language does. Just because powershell can link to OpenGL renders doesn't men's games are built with powrshell--there are easier ways to get there.

    19. Re:Why not? by Anonymous Coward · · Score: 0

      COBOL was one of the very first languages to support databases. Oracle and DB/2 were developed originally for IBM mainframe computers which at the time mostly ran COBOL, Fortran, or PL/1. As were the DBMS predecessor platforms, such as DL/1.

      You can write web applications in COBOL, although it's not something most people would want to do. COBOL was doing CICS long before the development of the Internet. It's not like online interactive applications weren't being done until HTML was there to replace screen maps or HTTP and TCP/IP were there to serve as transport mechanisms.

      And unless you are looking for a career at EA or some place like that, your ability to write videogames is probably not going to contribute much to your ability to get hired in Corporate America. I did know some people who wrote games in COBOL, though. Sad creatures.

      I actually do think that COBOL is a pretty horrible language and platform, but if you're going to put it down, at least use valid reasons. I can supply all you want.

    20. Re: Why not? by Anonymous Coward · · Score: 0

      Then number of Restful apis written in cobol has got to be near zero.

      How about the cobol systems that emit xlsx? Or even csv?

      Again, most send to another system that does all that 'fancy' stuff.

      Modernizing is not easy.

      That's why I advocate killing the beast. Don't rewrite. Don't pull a modern system in an inorganic direction by trying to translate cobol to the language of your choice.

      Cobol is a platform as much a as language, and usually it's possible to segregate a given cobol env into a system of systems. Modernize a given subsystem, getting it right by using archival/historical data to validate--most cobol systems are consistent / transactional and deterministic. As each piece is modernized and rewritten, from the ground up, the overall app will come together.

      It is not easy nor is it cheap. However, once complete, the new app is able to better monetize the business layer--cobol is what it is, and its value potential is limited.

    21. 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.

    22. Re: Why not? by Anonymous Coward · · Score: 0

      Isn't brainfuck Turing complete?

    23. 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?

    24. 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).

    25. 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

    26. Re:Why not? by Anonymous Coward · · Score: 0

      I translate COBOL to modern languages for a living. I appreciate and agree with you that COBOL is honed for the task, and does what it does quickly.

      The problem with COBOL however is that it has ZERO protection against stupidity. And stupidity is not a property of a man, but rather a state of mind, hence everyone is succeptible. Amount of sheer stupidity and typos I have seen in production code, which runs today in banks etc, is scary.

      Modern languages are much better at protecting one from oneself (well, it is a matter of opinion of course, but in comparison to COBOL.... ).

      Personally, I prefer Common Lisp. It is also ancient language, and it protects against stupidity by minimising number of words used in speech.

      Also, maintaining COBOL is a pain - just think of GOTOs within PERFORM-THROUGHs. Might be good against hackers stealing your code though.

    27. 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.
    28. 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.

    29. 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.
    30. 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.
    31. Re: Why not? by Anonymous Coward · · Score: 0

      "Unicode? No."
      This is a feature. Without Unicode, you don't have to worry about unicode.

      "Variable sized data fields! no.."
      This is a feature. With fixed sized data fields you don't have buffer over runs, you must think through your data structures and processing BEFORE writing your algorithms. And the data always works, because it ALWAYS has to fit the field.

      " Threads? No. " This is a feature. Without threads, you cannot have issues with threads.

      "Useful libraries? No." This is not actually true, but so what? Without using external libraries you don't have version problems with libraries, you don't have any 'black boxes' in your code. Everything your code does is actually in your code.

      "Integration with other components? No." Also not actually true, but again so what? No other components, no other components to go wrong.

      COBOL is not for 3d game engines.
      It is not for interweb meme generators.
      It is for ACCURATELY processing business and fiance data.

      I'm no COBOL fan. I hated using it back in the day because I had already used various versions of basic, C, C++, delphi, etc ... So even back then I knew that the way COBOL did things was old fashioned. It also had a very slow work flow. I swear to god if I ever have to waste another hour to write yet another JCL program to get my damn COBOL program to run in the first place I'll just stop breathing until I die. Seriously, you need to learn not only COBOL, but need to know Job Control Language just to get the COLBOL to run.. dumb.

      But it did/does do ONE THING well.
      Process data the same way every time with code you could show to business people to prove your business rules and fiance processes were doing what they told you to make them do.
      Either the input data was accepted and it ran perfectly, or it just barfed and did not work at all.
      There was never any question of if it did what it was told to do correctly.

    32. 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.

    33. 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.

    34. 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.
    35. Re:Why not? by Anonymous Coward · · Score: 0

      Already is.

    36. Re: Why not? by Anonymous Coward · · Score: 0

      Let's not get too semantic....

      There is what a language can do.
      There is what a language should do.
      The there is what a language does do.

      In an academic / turing complete sense cobol systems can/could do a lot of things.

      In the real world, there are other, easier ways to get there; cobol systems shouldn't be used for those tasks.

      As a result, cobol systems *dont*.

      Even csv emission is a stretch. I know, it's crazy.

    37. 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
    38. 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
    39. 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
    40. Re:Why not? by Anonymous Coward · · Score: 0

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

      I programmed in Cobol eons ago. Its a great language. True, you could write spagetti code with it, based on computed goto's. In those days, we code as:

      if x equals option1 goto processOne;
      if x equals option2 goto processTwo. ....

      We did not think to create procedures.
      The we had perform a through g. Which basically did a go to a, with a return from end of g.

      But there was no malloc() and the JCL managed the buffering. Buffering is rightly so, a system chore. Linux has it wrong. In Linux, we do an malloc to get the number of buffers we think will improve I/O performance. With terrabyte disks and gigabytes of ram, why are we not looking at a better Linux and a better Cobol.

    41. Re: Why not? by Anonymous Coward · · Score: 0

      So, do a COBOL++. ;)

      Trying to shoehorn C++ or Java or LUA into this job would be a bigger nightmare than just creating a new backwards-compatible language based on COBOL.

    42. 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...

    43. 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.

    44. 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!

    45. 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
    46. 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.
    47. 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.
    48. Re: Why not? by Anonymous Coward · · Score: 0

      Cobol doesn't do output well. It does the bare minimum and that's all it can do. Your link doesn't show csv as a native format and yes, anybody with enough funding can write unsustainable outputs of any type.

      Perl is more expressive then cobol when it comes to output and because perl runs on 230,000 mips i7s vs 700 mips mainframes about a gazillion times faster. Note: perl sucks.

      Cobol is the vbscript of the 70s. This mystique that it does anything particularly well or magically needs to die in cleansing fire.

    49. 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.

    50. 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.
    51. 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 Roger+W+Moore · · Score: 0

      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.

    3. 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.

    4. 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
    5. 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.

    6. 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.

    7. 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...
    8. 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.

    9. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Job or no job, programmers just are not allowed to learn new languages. For that matter, each programmer is also to keep quiet about how he learned the language he came with.

      Very quiet...

    10. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Not to mention the headache of redesign and training. Would the bank expect the existing IT to setup a system that effectively leaves them without a job? Hard to justify moving away from big iron once everything is up and running smoothly.

    11. 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.

    12. 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.

    13. Re:COBOL isn't hard to learn by Snotnose · · Score: 0

      While this is an eminently sensible way of thinking you're forgetting one fact. When times are tight (read: higher up's bonuses are threatened) IT is a cost sink, not a value added proposition. So you train the COBOL folks, let them learn the codebase, then lay them off. Next quarter hire more new grads, teach them COBOL, let them learn the codebase, and lay them off.

      Modern management exists to suck as much money out of the current quarter as possible, never mind the customer experience (did I really just say that?) nor the next quarter's results.

    14. 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
    15. 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".

    16. 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.
    17. 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.

    18. 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.

    19. Re:COBOL isn't hard to learn by tdelaney · · Score: 0

      I did 2 weeks of COBOL for work experience (for high school) way back when I was 16 (only having previous experience with BASIC and Pascal). Whilst I didn't produce anything of use to the company, I did have a fully-working book cataloguing system by the end of the 2 weeks. The limiting factor for becoming a productive team member wouldn't have been programming, but learning to work in a development team.

      I haven't touched COBOL since and have never had a desire to do so.

    20. 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'

    21. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Yeah but, they don't grok anything. It's old.
      Ignorance is the new education.

    22. 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.
    23. 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.
    24. Re:COBOL isn't hard to learn by jimtheowl · · Score: 0

      I for one do not try very hard to solve problems for the higer up's self inflicted greed wounds, but if it helps to train some grads, that knowledge can help to get a job at a better place.

    25. 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.

    26. 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.

    27. 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.

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

      Agree. There is a reason why all the old cobol programmers are retiring and nobody is coming up behind them. C has been around for just as long and doesn't have that prob.

      The key is to start with the heart of the beast and kill it. Don't upgrade it, don't rewrite it. Kill it dead.

    29. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      No they perform like ass and as a result, there are glue layers that are ugly as f.

      Have a Unicode name? Tough t.

    30. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      It's because cobol doesn't like variable width and threading is nonexistent.

      IBM says 'COBOL does not directly support managing program threads. However, you can run COBOL programs that you compile with the THREAD compiler option in multithreaded application servers, in applications that use a C/C++ driver program to create the threads, in programs that interoperate with Java and use Java threads, and in applications that use PL/I tasking. In other words, other programs can call COBOL programs in such a way that the COBOL programs run in multiple threads within a process or as multiple program invocation instances within a thread.'

      Yup. It's not just old. It's fn legacy.

    31. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      C is at least a decade newer than Cobol if not a decade and a half.

    32. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Most of the people who wrote those systems were not CS graduates - they may or may not have had a BA, but many were working for the company in the finance department and were taught COBOL. It is easier to learn COBOL than to learn the business.

    33. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      but based on older shittier systems that had to be learned and maintained before that

      "Shittier" implies the current system, your system, is on the same scale as shit, just less of it.
      A better statement would be "but based on older shit systems that had to be learned and maintained before that"

    34. 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.

    35. 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.

    36. 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.

    37. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      COBOL is the original language "for non-programmers" - ie people who could not handle thinking in FORTRAN and FORTH. It is not a difficult language to learn, the biggest problem that modern developers would have with it is running into its limitations, a problem that is best solved by migrating code to more modern and capable languages. 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, probably the Javascript frameworks used on the average webpage contain more lines of code than was ever written in COBOL. The financial industry needs to get to grips with technical debt, and tackle it instead of pulling people out of retirement because before they retired they managed to convince the management that only they had the skills necessary to maintain the code, and that it would be too difficult to replace this code. And to succeed in doing this, they need to start hiring capable and experienced software professionals that are under their control again, and put a stop to outsourcing software development work to the lowest bidder for a fixed headcount.

    38. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      The problem is granddad won't live forever.

      All things in this world have a lifespan, COBOL included. It's not the last word in data processing.

    39. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      The main reason to be reticent is that the business insists on outsourcing its new development to the lowest bidder, at the same time recognizing the value of experience for developers maintaining the old systems, to the point where they call them back out of retirement.

    40. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      In the world of systems, they are relatively equivalent.

      Except ppl know what the c code does. the cobol code is...easier to replace. If the reason why cobol code works is ppl are afraid to change it--that is a sign the language is fubar!!!

      The right way to replace a cobol driven capability is to look at business / functional requirements. Which, of course, were not captured by the original cobol devs, since they were too busy trying to figure out how to glob file wildcards.

      It's a pia make no mistake--but the bandaid must be ripped off.

    41. Re: COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      There is no reason not to ise any given language, as long as it is still fit for its original purpose. Same with any tool.

      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.

    42. 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.

    43. 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.

    44. 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.

    45. 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.

    46. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Hiring managers have the idea of vast labor pool from where anybody can be obtained fast and cheap.
      Many engineers spend a long time specializing on a products which makes them very hard to replace. The rules of accounting does not put a number on this. An engineer who has invented a product can be the key to a whole company, if he goes the company dies. I have seen a few examples of this. However, his compensation and status may never reflect this.
      As you say, banks should recruit young talent from schools, and keep them. After all banks are responsible for ~ 40% of all corporate profits, they should pay these people accordingly.
      Pay it and they will come.
      COBOL is not obsolete, it is working, as intended for the application.
       

    47. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      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.

      The problem is really only if you only program COBOL and then try to jump to something else without learning other languages first.
      If you stay with the legacy systems then you are going to have to be involved with the the replacement operational since you are the one who knows best how the old code works.
      You are pretty much forced to learn whatever system they are replacing it with then.
      For a COBOL programmer to be left without options they pretty much have to tell their employer that they refuse to work with anything not COBOL-related and quit as soon as the transition happens.

      I'd me more worried for people who only knows the latest fad language.
      When the Rust fad is completely done with any Rust-only programmers won't have much legacy code to support. The code will probably just be scrapped and whatever function it had will just be part of a new specification given to a new consultant.

    48. 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.

    49. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Yep, but your python code can have some edge case where the interpreter decides to convert your string to another type of string because someone had a name with a special character in it and then it gets passed in to a function that doesn't support it and you get an exception later down the road when it is too late to handle it without aborting the operation.
      The lack of strong typing means that you don't want to use Python for anything that has to be reliable and predictable.
      Sure, you could make sure that all cases are properly handled and put up a sign saying "no-one ever upgrade any package ever!", but at that point Python is a lot more tedious than COBOL.

      Python has its places. Especially if you just need a script that does a one-off thing or is only used manually by persons that can implement the quick fix when the odd case that doesn't work happens.
      It's not something you want to use in the places that currently uses COBOL.

    50. 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.

    51. 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.

    52. 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.
    53. 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.
    54. 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.

    55. 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.

    56. 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.

    57. 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
    58. 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
    59. 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.
    60. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      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.

      I disagreed with your other point, but just let me this is 100% spot on. If banks want new affordable COBOL programmers they should be taking them on as paid apprentices from disadvantaged unemployed miniority groups, based on very general aptitude tests, teaching them the basics of computers, CS, corporate life and general software craftsmanship. Then they should start them on a basic but okay salary and systematically increase it at 20% a year every year for as long If they want Universities involved then they should be paying them vast quantities of money to help. There's no place for anyone voluntarily encouraging COBOL development. This should be done only because someone is making vast quantities of money based on old COBOL code and removing it creates too much risk. If that is the case, then the person making the money should be paying to ensure their own future.

      CAPTCHA: "factual" - Slashdot AI is the bomb.

    61. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      It mostly feels like we got a grandad peeing and shitting on himself, but he is the only one to know where the family safe deposit is and what its code is. So everybody is treating him real good for all the bad reasons.

    62. 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."
    63. 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."
    64. 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
    65. 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
    66. 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.
    67. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Back in March 2015, Obama launched the initiative called TechHire which was supposed to train unemployed people to code. Instead of focusing on HTML development or mobile apps, perhaps the program should give basic COBOL training then find those folks apprenticeship positions.

    68. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      And start by teaching some variety of assembler so they know how registers and memory works. Then pick an OO language, a procedural language and a functional language and teach all three.

      If you've got the basics, you can learn a new syntax relatively quickly.

      For what it's worth I think COBOL is excellent for some tasks. Just like Java//Haskell/Ada/C/C#/c++/VB//Python etc. etc. are all excellent for some tasks.

    69. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Great ideas. But neither Python or C++ have compilers on our mainframes.

    70. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      The article is typical of its kind. The hipsters and outsourcing profiteers can't get rid of COBOL applications on merit and, not knowing how to handle pretty much anything on merit, they try to demonize it by calling it and the people who are good at it old, dinosaurs, whatever the insult du jour is. The fact that this stuff runs so many business transactions in ways that these phone app writing idiots can't even begin to comprehend is absolutely irrelevant in their minds. This is the same mindset that re-invents ISAM files and calls it a "NoSQL movement" after all--after we've spent decades and billions of dollars re-inventing virtualization systems that mainframes have had (with more reliability) since the 1970s because we're trying to squeeze everything onto PC and server architectures that fundamentally haven't changed since the IBM PC AT came out. No, better graphics cards, more memory, and multi core processors running single thread applications written by idiots don't count. IBM changed their mainframe hardware radically over the course of time and stuff written in the 1960s still runs on it. Meanwhile, it's a huge celebrated accomplishment lately to get Windows to run on something that isn't Intel or AMD.

      I'm actually not a mainframe person. Never been paid to write COBOL but I understand it and have written things in it. I've used a mainframe as a user and integrated things with one, but I've developed for and managed all that stuff I was just complaining about. I'm just looking at the world the way it is, not the way silicon valley hipsters want it to be. The truth is they think everything that came before them is useless and that's why they keep re-inventing things that have been done before and celebrating like a kindergarten student who learned how to write the alphabet for the first time.

      There simply is no language like COBOL for expressing business logic. Nothing even comes close. CICS handles transactions with an ease and grace that just doesn't exist elsewhere. COBOL kind of sucks at user interface work--so don't do that in COBOL. How about we (gasp!) try to use tools for what they're good at and use other tools for what those things are good at and stop trying to pretend that the main qualifiers for being a good developer are being under 25 and sneering at everything. Yes, I've been burned by this: where I work we replaced a functioning mainframe system with multiple business applications written in COBOL with an off the shelf solution that requires 10x as much staff maintenance time (literally), causes constant fighting with the vendor, doesn't perform all the functions required, and generally has been one headache after another. The mainframe problems were fixable, needing some refactoring, but nobody even considered wanting to because of all the propaganda spewing forth from idiots and consultants--pardon the redundancy.

      I just wish everybody would grow up, use what's right for the job once in a while, and stop pretending they're God's gift to humanity because they can write a small departmental app in today's cool language so hey, let's go find some VC funding for our new startup!

    71. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      I don't follow. Why would you not want to be detached from reality? Fuck reality.

    72. 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.

    73. 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?

    74. 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.

    75. 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.

    76. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      First of all, COBOL is reliable. On the right hardware there is ZERO memory leaks or wild transaction corruptions. It works. Just use it for backend - or use C++ and Java in-stream - Yes you can do that too.
      My bet is no Indian understands LE.
      People hate COBOL, because you have to understand the corporate data- perhaps a novel concept.
      COBOL compiles efficiently - un, only bested by FORTRAN compilers.
      I'm not aware of any viruses on IBM, the hardware protection is far tougher than toy PC structures.
      Get it right, and you can sleep at night. Same modules run unchanged 30 year s or more later.

      COBOL DOWNSIDES
      Yes, there is a Visual GUI - but most places don't use it.
      Smart programmers realize it is a dead end job path - and move on
      Employers won't pay properly - Those greybeards won't take real pay cuts nor work overtime for free, nor churn out shit code.
      Consultants want redevelopment money - Cloud, SAP, Reports, ETL, EDW - lets remake a working system all over.
      Deployment IS overly complicated.But so is everything else where data structures change daily.
      MQ and transaction rollbacks are another layer of complication (even Java).
      Stuff written in COBOL fails fast and hard. Java is much better at silently corrupting data without complaining.

      No COBOL should not die - the market will sort it out . The alternative is rookies hacking Java code in a Java engine full of bugs and security issues and out doubtful scaleability.. Recent trends suggest cheap cheap wins the day, and that clouds mean there is no need to hire any programmers again.

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

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

    78. 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.

    79. 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.
    80. 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.
    81. 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.
    82. Re:COBOL isn't hard to learn by micahraleigh · · Score: 1

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

    83. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      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.

      You should graduate fluent in at least 3 languages, including a low-level language. At that point you can pick up the syntax and grammar of a new language on demand. If you have not learned a few ways to do something already, you will not be able to come up to speed in a new language quickly enough to be useful.

      You cannot claim to be competent without a firm grasp of the underlying concepts AND experience in several implementations. Understanding the differences between theory and practice is necessary.

    84. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      My understanding is that the problem ISN'T that banks need people who know the language COBOL. What they need is peope who are familiar with their PARTICULAR, poorly documented legacy systems. Which is why they have to keep going back to their retired programmers who know "Don't touch that, you don't know what it might be connected to."

    85. 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
    86. 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
    87. 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.

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

      Like COBOL?

    89. 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.

    90. 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
    91. 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.
    92. 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.
    93. Re:COBOL isn't hard to learn by Anonymous Coward · · Score: 0

      Not to mention that many ERP systems use COBOL for some of the batch processing operations.

  3. YES! by Anonymous Coward · · Score: 0

    And let there not be a single artifact line of code be left behind. Let's forget it ever happened in the first place.

    1. 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..

    2. Re: YES! by Anonymous Coward · · Score: 0

      Good point. We need droops code analysis rules that reject commits with upper case.

  4. 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 Anonymous Coward · · Score: 0

      Same here. It mostly works so there is no reason to replace it.

    4. Re:No. by Anonymous Coward · · Score: 0

      But, like the original post said, offer more money and they will come.

    5. Re:No. by Anonymous Coward · · Score: 0

      And also our time off system. There are major bugs with it, but it is probably better than anything we could replace it with so I support the "COBOL forever" people.

    6. Re:No. by chispito · · Score: 1
      --
      The Daddy casts sleep on the Baby. The Baby resists!
    7. Re:No. by Anonymous Coward · · Score: 0

      That part sucks. The pay is good, but Americans get no time off as compared to Asians. The last full week I was able to take off was in 1983. Since then, I think I've lost 28 weeks of vacation time due to accrual limits. I wasn't even able to take more than one day off when my parents and little sister died in a car accident. Microsoft told me i had to return to work.

    8. Re:No. by Anonymous Coward · · Score: 0

      > e past thirty-one years,

      I've worked longer for start-ups here, and I haven't been allowed more than a single day off. It sucks that so unfairly Indians are allowed more time off.

    9. 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.

    10. Re: No. by Anonymous Coward · · Score: 0

      COBOL is like punch cards. You could, but if you did, your competitor would beat you to market.

      The reality is the modern world requires more then cobol was designed to support. Keeping cobol around after 'the guy' retires is only going to increase costs. In fact, you probably don't want to wait for him to go. Start now, so he can help.

    11. Re: No. by Anonymous Coward · · Score: 0

      Then why do you still work there?

    12. Re:No. by Anonymous Coward · · Score: 0

      > Americans get no time off as compared to Asia

      This, but since we don't have the same tradition of being lazy, it usually doesn't matter. We just live with years or decades without vacation time.

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

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

      That's your fault.

    14. Re:No. by Anonymous Coward · · Score: 0

      Same here. Americans get no time off while Indians get two to three weeks off.

    15. Re:No. by Anonymous Coward · · Score: 0

      You're assuming things are better elsewhere. I've worked for Fortune 500 companies since I graduated college in 1987, and I haven't had more than a four day weekend off since I started working. I stay since all of my friends are in worse positions in their jobs.

    16. Re:No. by Anonymous Coward · · Score: 0

      1) Play the modern identity politics game 2) Identify as a race-fluid Indian 3) Sue for racial discrimination when they don't let you take time off like your fellow Indian work mates 4) Profit?

      Also in our country you can cash in your unclaimed holiday time - time off would be better, but we can at least get the equivalent as a cash payment instead.

    17. 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.

    18. 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
    19. Re:No. by Anonymous Coward · · Score: 0

      I was once told that I need to carry my work phone and be available while on vacation, the answer was "sure, ok", and when I got home I started looking. 3-6 months later I had offers to choose from. I really don't understand why this is such a foreign concept for so many people.

  5. 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 Tough+Love · · Score: 0

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

      Or kill yourself, or both.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    2. 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.

  6. No, because they'll have H1B's do the conversion by Anonymous Coward · · Score: 0

    I'd rather not have my money stolen/lost due to bad code.

  7. 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 Anonymous Coward · · Score: 0

      > 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

      Fair enough -- but have a look here: https://mainframed767.tumblr.com/

    4. 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 ?
  8. 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: 0

      This.
      Any half decent programmer can learn a new language.
      Hire someone now and have them train with your retired guys.
      Suddenly you have someone new who knows cobol.
      You can't rely on people with all the knowledge you want just popping into existence.

    2. Re:How about a 4th option ? by Anonymous Coward · · Score: 0

      the sun is free and dirt is cheap*. hydroponics also has additional maintenance of pumps & algae fighting

      * modern farmers don't plant in "dirt", they plant in a natural/synthetic mixture to maximize output. some farms are even experimenting with 99% synthetic. the big downside is the massive runoff turning streams, rivers, and oceans into dead zones.

    3. Re:How about a 4th option ? by Anonymous Coward · · Score: 0

      Banks are doing that an will do so for a long time to come. The heavy paycheck is because you're out of fashion and take that risk

    4. 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.

    5. Re:How about a 4th option ? by Anonymous Coward · · Score: 0

      Hydroponics and grow lights are for pot, a product where prices are driven sky-high. It makes economic sense to grow stuff like that when you don't want people seeing it, and you expect a huge cash return. OTOH, you grow your veggies and fruits outside because they just aren't worth that much. I'd be losing money on tomatoes if I grew them indoors.

      So. Is the banking business more like a pot grow or a vegetable garden?

      It's probably more like a vegetable garden, and spending a lot of money on a fancy "grow-light" system doesn't make sense when the old dirt, sun, and garden hose are working just fine.

      OK, the analogy isn't perfect--there are things other than pot that benefit from carefully controlled conditions; but it's mostly pot.

    6. 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
  9. I'll be the first to say it... by Anonymous Coward · · Score: 1

    Too big to fail?

  10. 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: 0

      Banks should be able to use their existing COBOL code to define the functionality of a new program specification. That new program could be reliably written in any framework that handles testing maturely. This should be (relatively) inexpensive and much more accountable/reliable than trying to maintain an ancient codebase on archaic platforms.

      If there's no way to define an accurate program specification from the existing codebase, then this is the real problem. It would mean banking software relies on magic, and on grey-bearded wizards performing that magic.

    2. 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.

    3. Re:BUGS by RightwingNutjob · · Score: 0

      You don't know what you're talking about. Clearly you've never written a program more complicated than "Hello world" in LabView.

    4. 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 :-(

    5. 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.
    6. Re:BUGS by Anonymous Coward · · Score: 0

      Clearly you've never written a program more complicated than "Hello world" in LabView.

      Having worked with LabView (admittedly many years ago), I have to say that writing a reliable, tested, safe "Hello world" does seem to me to be pretty top end. Certainly I'd prefer writing new efficient complex Monads in Haskell or even safety critical fully tested code in C99 to having to do "Hello world" in Labview.

      ;-P

    7. Re:BUGS by Anonymous Coward · · Score: 0

      COBOL is designed for processing transactions. If you're trying to something else, you're crap at your job. Use another language instead of trying to force everything through just the one. Get back to your VB, kid.

    8. Re:BUGS by Anonymous Coward · · Score: 0

      Banks should be able to use their existing COBOL code to define the functionality of a new program specification. That new program could be reliably written in any framework that handles testing maturely. This should be (relatively) inexpensive and much more accountable/reliable than trying to maintain an ancient codebase on archaic platforms.

      ROFL, you don't have a fucking clue do you. We just finished one such conversion, that "relatively" inexpensive conversion was 35 million for us and our systems while large are dwarfed by some of the banks.

    9. 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.
    10. 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
    11. 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.

    12. 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.

    13. 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.
    14. Re:BUGS by Anonymous Coward · · Score: 0

      ADA is the American Dental Association, American Disabilities Act etc.

      Ada is the computer language, you know named after the person? Read a book https://en.wikipedia.org/wiki/Ada_%28programming_language%29

  11. 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 Anonymous Coward · · Score: 0

      Sounds like a colossal dead end. Cobal is a crazy nuanced language that is hardware specific. I could see some np hard math problems in trying to emulate.

    2. 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.

    3. 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
    4. 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
    5. 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 :-)

    6. 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.
    7. 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."
    8. 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
    9. 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.

    10. 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
    11. Re: What is needed.. by Anonymous Coward · · Score: 0

      Not quite. Once you use flosting point and pointer arithmetics, even Cobol becomes hardware/implementation specific.

    12. Re: What is needed.. by Anonymous Coward · · Score: 0

      That's why you use BCD arithmetic!

    13. 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.

    14. 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.

    15. 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
    16. 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
  12. 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.
  13. 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...

    2. Re:It will probably never die by Anonymous Coward · · Score: 0

      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

      I thought you were basically required to use 3- or 4-digit fixed point numbers ($0.001 = 1 mill, and $0.0001 = 1 decimill).

    3. Re: It will probably never die by Anonymous Coward · · Score: 0

      Java BigDecimal gives you problems? Jesus Christ, it is simple and straightforward and does EVERYTHING COBOL decimal numbers do! BigDecimal is completely accurate for decimal calculations AND comes with various number rounding modes that you can specify on a per-expression basis.

      Enough with the FUD already. Java is a drop-in replacement for COBOL arithmetic.

    4. Re:It will probably never die by Anonymous Coward · · Score: 0

      One of the big mistakes of Java, not implementing operator overloading specifically for BigDecimal kind of implementations.

    5. Re:It will probably never die by Anonymous Coward · · Score: 0

      Have you seen GnuCOBOL ? (formerly OpenCOBOL)

    6. Re: It will probably never die by Anonymous Coward · · Score: 0

      he didnt say it gave him problems, its just hard to read

      now shut up

    7. Re: It will probably never die by Anonymous Coward · · Score: 0

      If you can't handle reading BigDecimal arithmetic expressions, you must barely be making it as a programmer. IT'S TRIVIAL. Enough with the FUD already.

      COBOL is *completely replaceable* by Java with zero loss of functionality. There's nothing magical about COBOL.

  14. 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.

  15. 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
  16. 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

  17. 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 mark-t · · Score: 0

      You say that now....

      COBOL is not at all hard to learn, and bordering on elementary to simply read and comprehend, but its verbosity makes it extremely tedious to develop in. The ease with which COBOL programs can be understood reasonably well simply by reading their code does not go anywhere nearly far enough to justify this amount of labor when it comes to doing actual development.

    2. 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.
    3. Re: Challenge accepted by Anonymous Coward · · Score: 0

      I assume there is a cobol-mode for Emacs to make it easier.

  18. 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.

  19. 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.

    1. Re: COBOL programmers aren't all old by Anonymous Coward · · Score: 0

      COBOL being "lucrative"... well, I will take your word for it, but in any case, that phenomenon will not last forever. Businesses ARE migrating off COBOL, certainly they aren't doing new development in it, so COBOL is an old fart's game. Young people just starting out should avoid it because it has no future.

  20. If it ain't broke - don't fix it. by Anonymous Coward · · Score: 0

    Alternatively they could pay people to program in COBOL - a tried and tested relatively bug free, resource efficient programming language.

  21. 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.

  22. 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 Anonymous Coward · · Score: 0

      It truly depends on what industry you're in. Here in the financial industry what you say really couldn't be further from the truth. There are tons of COBOL roles that need to be filled and COBOL is certainly not being killed in any way, shape or form. Lots of new development is going on in COBOL and many organizations are still translating even older 370/Assembler code into COBOL. COBOL will die when the mainframe dies, that is to say never.

    2. 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

    3. Re:My brother and I were talking about this by Anonymous Coward · · Score: 0

      Who is they? I support the development of 9 different applications actively maintained and sold, all rely on a Cobol based backend and run 30-50% of the Wealth and Retirement market.

  23. 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.

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

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

  25. Translate COBOL to other languages? by Anonymous Coward · · Score: 0

    Another option would be to translate COBOL to another language. A search for "cobol translator" yields several interesting hits.

    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!

    The limiting factor is always library support, especially if the library is available only in binary form, without source, in which case a function call interface converter will need to be written (if one doesn't already exist). More often, the program is tightly tied to an obsolete OS, requiring a real porting effort (rather than just translation).

    The MOST IMPORTANT factor is to have a full and comprehensive test suite for the original program. If it doesn't exist, it must be written before any translation or porting effort starts. Only then can the resulting product be "blessed" for production use. But only after running in parallel with the original for as long as possible, preferably months.

    1. 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

    2. Re:Translate COBOL to other languages? by Rei_is_a_dumbass · · Score: 0

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

      This is wrong. FORTRAN like every other language, stores it's arrays as a continuous block of memory. The only difference is the other of the indices. If you want fast fortran code you put your least accessed index last. FORTAN

      INTEGER :: i, j, k

      INTEGER, DIMENSION(10, 20, 30) :: array

      DO k = 1, 30

      DO j = 1, 20

      DO i = 1, 10

      array(i,j,k) = 1

      END DO

      END DO

      END DO

      is exactly the same as C

      int array[30][20][10];

      for (int k = 0; k < 10; k++) {

      for (int j = 0; j < 20; j++) {

      for (int i = 0; i < 30; i++) {

      array[k][j][i] = 1;

      }

      }

      }

    3. 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.

    4. 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
  26. Security by obscurity by Anonymous Coward · · Score: 0

    It works in this case, because the hotshot hackers around the world don't know IBM mainframes and COBOL.

  27. 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 Anonymous Coward · · Score: 0

      Of course - in Scandinavia, people do things which make sense unlike the US...

    3. Re:Or use in-house education by Anonymous Coward · · Score: 0

      Because cobol of today is not cobol of 50 years ago, with all the accumulated duct-tape.

    4. 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...

  28. What about... by Anonymous Coward · · Score: 0

    What about object oriented, web enabled, functional COBOL with reflextion, and the Linux GUI that can take care of the TPS report problem?

    1. 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?

  29. Self-correcting problem, if it is one. by Anonymous Coward · · Score: 0

    If it is a problem, and migrating massive systems over to the current hot language-of-the-month will result in greater profitability for those sectors, then COBOL will die.

    If it is not a problem, and the cost of retaining experts in COBOL (or at least people who can debug and enhance it) is less than migrating the system over to the latest-and-greatest, then it will live.

    So why the question, again? Oh.... the pushers of ___________ (insert language that needs more profit here) want us to think it is a problem, then. OK.

    One thing about banks and government sector.... unless there's money or votes in it, you won't see them moving from what works. The rest of the business world could take a lesson from that. (As well as migrating when there are reasons to move on, and only then.) Maybe I need to get my old COBOL books out.

  30. 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!

  31. COBOL is an acronym by Anonymous Coward · · Score: 0

    Compiles Only Because Of Luck.

    Of course the language should die.

  32. 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?

  33. 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.

    1. Re:The answer is YES... YES ... YES by Anonymous Coward · · Score: 0

      you can not get resources out the University

      With writing like that, how would you know what happens in a university?

  34. Maybe um Train folks? by Anonymous Coward · · Score: 0

    I'm thinking training folks has to be a shit ton simpler than replacing/revamping an entire "don't fix it ain't broke" platform.

    But that would be Un-American.

    Instead we should hire some H1B Indians who can't do the job instead.

  35. 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 Anonymous Coward · · Score: 0

      Almost certainly, but I figure my suicide considering conditions, hiring conditions, and PR only by one or two orders of magnitude. I'm not going to pretend the lost skills and experience matter because they obviously never gave a shit about the systems or the organization long term anyway.

      If I hang myself somewhere visible, I might be able to push it to a close single figure difference.

    3. 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.

    4. 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
    5. Re:And JCL and System 360 Mainframe HLA and CICS? by Anonymous Coward · · Score: 0

      bash doesn't begin to approach JCL for pointless peculiarity. e.g. IEFBR14

      Peculiar? Maybe.
      Pointless? Hardly! More like 'essential'

  36. COBOL is still quite valid for use... by Anonymous Coward · · Score: 0

    - COBOL is quite fast, believe it or not

    - COBOL is mathematically accurate out to 38 decimals, something no other language was built to do or can do

    - COBOL is easy to read and maintain and is now OO

    - COBOL programmers make excellent coin because everyone else is chasing the new and shiny

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

      - COBOL is mathematically accurate out to 38 decimals, something no other language was built to do or can do

      Bull-fucking-shit.

    2. 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).

    3. 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.

    4. 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.

    5. Re:COBOL is still quite valid for use... by Anonymous Coward · · Score: 0

      COBOL may be old and unsexy, but as stated above, if there was a better way, the banks would have embraced it, albeit slowly. Banks are risk averse. COBOL is a pedantic language, much like FORTRAN. Old doesn't mean junk. You know this, obviously. C is still used to write systems software even though there are improvements.

      I don't know about you, but I miss the "priesthood of the computer" when IT meant in the basement working on mainframes, minis, etc. I dislike the democratisation of modern IT and how easy it is to "get in". Mainframes, COBOL, FORTRAN, even C are old but they are trusted languages because they have years behind the. Rust, Go, C#, Haskell, Python, may, in time, be as trusted, but the issue with the other languages is they rely on too many libraries, too many frameworks. COBOL and FORTRAN, for example are complete. As the poster above mentioned, they run like a stabbed rat on mainframes. COBOL may be largely linear, but it's still the 800 pound gorilla of the money and transaction processing world.

      Take a look at some YouTube videos on IBM Z series mainframes. You'd be very surprised at what they can are are doing. The mainframe is actually gathering steam. More and more business are dropping the mish mash of Linux here, AWS there, Azure there, and moving to mainframes. Nothing else is as secure or as trusted.

    6. Re: COBOL is still quite valid for use... by Anonymous Coward · · Score: 0

      Jesus, you have no idea how languages other than COBOL work.

    7. 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.

    8. Re:COBOL is still quite valid for use... by Anonymous Coward · · Score: 0

      I think the issue here is us trying to defend this or that. Mainframes and COBOL are still the best thing for banking. Full stop. Nothing else is as trustworthy or as storied. Mainframes and COBOL have 60 years of history together--hand in glove. Java, Python, even C cannot reliably do what COBOL does. It seems odd that a 60-year-old language is still the best choice, but it's true. There is nothing abstract about COBOL. It's pedantic and straightforward.

      Sadly, I now work in distrubuted computing (Azure, Google Cloud, etc). I miss IBM mainframes. I miss COBOL. It was boring and stable--just what I like. I want to go home everyday at the same time. I want my nights and weekends free. Old IT allowed for that. New IT is a rat race being given over to foreign H1B coders. Kids coming out of university now are chasing nothing but the new shiny. Let them. It's sexy. But unfulfilling. I'm starting to take up PowerShell for my employer, as they want me to start automating everything for Azure and Office 365. It's boring work, but I leave at the same time everyday and there is no hurry. Just like the old days...

    9. 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?

  37. dreadful language, but preferable to new ones. by Anonymous Coward · · Score: 0

    I've written programs in COBOL. It's a dreadful, annoying language, and I did not enjoy it one bit.

    However, I would rather have my bank running accounting software written in COBOL than in most post-2000 era languages that people would argue to replace it with.

  38. Again? by Anonymous Coward · · Score: 0

    There was an almost identical submission a week or two ago. It was BS then and it is now. There isn't a shortage of COBOL programmers because there are no COBOL jobs. In 15 years I have seen one ad for a COBOL job.

    When the COBOL programmers start retiring, colleges will train new developers to take their places. It's simple supply and demand.

    I like COBOL, I'd love to get a job maintaining it. But COBOL jobs simply are not advertised. Once there is demand for the COBOL gurus, people will learn the language and take the jobs.

    1. 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.

    2. 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."
  39. 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?

  40. Re:So train the next generation of COBOL programme by Anonymous Coward · · Score: 0

    They only want to hire people with 50 years of cobol experience.
    Well tough luck.

  41. 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?
    1. Re:Should Banks Let COBOL Die? by Anonymous Coward · · Score: 0

      I keep seeing all these people grumping about the new hip-and-trendy language of the week won't be as stable as COBOL.

      Come on people! Python is thirty years old now, it's still kicking...

    2. Re:Should Banks Let COBOL Die? by Anonymous Coward · · Score: 0

      Replace decades-old code with code that requires technologies that are obsolete before the project is even done.

  42. And for those still running batch systems... by Two99Point80 · · Score: 1

    ...there's JCL.

  43. No... by RyanRife8866 · · Score: 0

    ...developers should.

  44. 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.

  45. 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.

  46. Grow up! by Anonymous Coward · · Score: 0

    We can't keep banks from ripping of their customers and crashing the economy, but ya, let's worry about COBOL.

  47. 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.

  48. There is always THIS option: Make COBOL SEXY by Anonymous Coward · · Score: 0

    2017 is the Year of the Twelve Sexiest COBOL Programmers Calendar!

    We should FIND them, then HIRE them.

    All the young ones will think, Now THAT's how I want to be when I grow old in code

  49. 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...

  50. 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

  51. 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.

  52. 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

  53. Fixable problem, pay more by Anonymous Coward · · Score: 0

    Indeed.com says:
    "What is the average salary for jobs related to "cobol developer"?
    The average salary for "cobol developer" ranges from approximately $74,684 per year for Programmer to $102,734 per year for Senior Developer."

    This seems a bit low for a Senior Developer. Pay more and you'll get more.

  54. NO! Because of that Law by Anonymous Coward · · Score: 0

    What's that law called? The one where if you start an article with "Should" the answer is always "No".

  55. 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!

  56. 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.

  57. 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.
  58. Don't screw it up by Anonymous Coward · · Score: 0

    Do not draw too much attention to COBOL. Finding competent programmers and pay them enough that the code base remains, and then when I need a good requirement job, there will be good pay still around... Unless the robots have taken over and learn COBOL.

    Seriously though, if you have competent individuals that understand computer language grammar and parsing, they should be able to learn a completely new to them language in double digit hours to single digit days. The technical debt to overcome all that is invested in COBOL and move it to a different language would easily be in the man-century order of magnitude.

  59. Yes, nut by Anonymous Coward · · Score: 0

    Yes they should, but they cant, much like a drug addict can't quit.

    Hopefully, AI will figure out a way to look at what is running and move it to a more supportable arena.

    Lacking that. Cobol is pretty simple, maybe s little ojt for new folks is in order.

  60. Let it die... by Anonymous Coward · · Score: 0

    I hate Microfocus...they are biggest scumbags on the planet and if any organization deserves to die its them...despite the job loss it would cause.

  61. Should car manufacturers let old tech WHEEL die? by Anonymous Coward · · Score: 0

    What do you think?

  62. COBOL by Anonymous Coward · · Score: 0

    They tried to teach me COBOL in college in 1980. I was too stupid to listen to my futurist cleric to realise it would never die due to inertia and increasingly pay more to experts year after year. I was a dumshit.

    They also taught me Pascal which is what the Mac was written in and that was about the last thing. :(

    I wrote my own industry specific programs in BASIC and to be honest I have been using them continuously since and that has made me as much $ as a COBOL programmer. :D

  63. Most modern programming languages suck. by Anonymous Coward · · Score: 0

    Most modern programming languages suck. They weren't design for building business applications. They are design for writing OS and utility programs. A language meant for writing business application should be more concern about legibility, IO, formatting output and validating input. No one is designing such languages.

  64. 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."
  65. trade schools by Anonymous Coward · · Score: 0

    Yes, yes our universities are. Maybe yours in Europe aren't, but the quality of "computer science" grads makes it very clear that American universities are trade schools, not a place for a liberal arts education.

    Canada, you're in America. Your grads suck too.

  66. Why COBOL? by Anonymous Coward · · Score: 0

    Question: Why was COBOL chosen to develop these systems in the first place? What is special about COBOL that makes it the language of choice for banking?
    Answer: It arrived early. That's the ONLY reason.

    Why don't institutions that use COBOL update to newer technology? There's no denying that advances have been made in computer languages in the last 60-70 years.

  67. 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.

    1. Re:Just pay enough. by Anonymous Coward · · Score: 0

      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.

      Spot on.

      I'm a Java developer who has done, COBOL and PL/I; but if you want me to work in that environment, you're going to have to beat my Java salary by a lot, beat my shorts and flip-flops dress code, and beat my work-from-wherever-as-needed policy/benefits. And that shit isn't happening at a bank.

  68. Banks are dead- crypto is literally replacing it by Anonymous Coward · · Score: 0

    I'm seeing what is going to happen to the rest of the world in short order here in New Hampshire. Crypto in New Hampshire is fast becoming the norm at a local level. We've got Bitcoin vending machines all over the state, people receiving payments for goods sold in Bitcoin (at a local level), people receiving paychecks in Bitcoin, etc. Why would you put your money in a bank account? I'm not an investor, but my Bitcoin has increased my worth. It goes down sometimes, but overall it's been going up and up and up over the years and FRNs always go down. Now I'd never invest in Bitcoin because a good investment provides a more reliable higher return in the short term (1-2 years). However that isn't true for everybody- so for some it might make sense. Where it makes sense for me is in transactions. I don't lose 3% on $1,500-2,00 sales online like with credit cards. That's can be more than the profit margins. I made two Bitcoin transactions today. One was for some radios I bought locally and one was for food. I don't buy Bitcoin- I take Bitcoin. Everything from food to plane tickets to car insurance and hotels I routinely pay for using Bitcoin.

  69. 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.
  70. 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.

  71. 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.

  72. 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.

  73. 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?

  74. 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?
  75. 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.

  76. 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.

  77. 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.

  78. 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.

  79. 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'.

  80. No, and "ancient"? by Anonymous Coward · · Score: 0

    Why do we still use ancient transistor technology!

    Change for the sake of change is good for bored people and animals. Not so much for software.

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

    YES

  82. 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.
  83. 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."
  84. no one wants COBOL programmers by Anonymous Coward · · Score: 0

    no one wants COBOL programmers! they want CICS programmers who know VSAM, DB2, IMS, etc and COBOL just the glue language for all that! if you know COBOL, you would not be able to get work unless you knew the whole stack of IBM technologies

    that's how you tell if these articles are BS or not - no company is going to rewrite its CICS transactions with its business logic

  85. 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.

  86. 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.

  87. 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.
  88. I would gladly learn COBOL by Anonymous Coward · · Score: 0

    Call me a sick bastard, but I might actually enjoy a COBOL job. I don't really know the language - other than a few hours I spent reading "Learn COBOL in 21 days". But, it looks neat and vintage computers and studying programming languages are hobbies of mine.

    Now, whether or not an institution would hire me without having explicit COBOL experience is another question entirely. Would a bank "take a risk" on a guy who is a COBOL newbie, but has 25 years experience in C++, Java, and C#? As another poster put it, that's their choice.

  89. You do realize that... by Anonymous Coward · · Score: 0

    If COBOL gets completely scrapped for a new, standardized, system that all the banks adhere to, in 30 years we'll be having this same discussion. Just with different language names.

  90. COBOL _is_ the most interesting programming langua by Anonymous Coward · · Score: 0

    I don't write ancient software in horribly outdated languages often, but when I do, I use COBOL.

  91. Banks? COBOL? by Anonymous Coward · · Score: 0

    How about killing two birds with one stone?

  92. You Don't "Let" COBOL Die by Anonymous Coward · · Score: 0

    "Let". Somebody obviously doesn't understand the problem. You don't "let" something die that's part of the core infrastructure. You can make a concerted effort to remove it from the infrastructure. But COBOL isn't going to just wither on the vine.

    The only real option in the short-to-mid-term is training new COBOL programmers. In the long-term? Well, once you've got a healthy pool of COBOL programmers again, you don't have to replace COBOL anymore. So, there's a bit of a catch-22 there.

    In the long-term, those COBOL programmers will need to be cross-trained in whatever language is chosen as the alternative. Then, over potentially a couple of decades, they would have to work to phase out the old COBOL-based systems and replace them with the alternative.

    Are there associations or coordinating bodies out there for COBOL programmers? If so, that would be a good place to start with managing the effort to maintain (in the short-term) and replace (in the long-term) COBOL.

    1. Re:You Don't "Let" COBOL Die by Anonymous Coward · · Score: 0

      Just how "bad" is it... This Henry Ford College FAQ provides a clue: https://cis.hfcc.edu/faq/cobol

  93. 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...

  94. 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"

  95. 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.)

  96. 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!

  97. Not a problem, just pay people to learn by Anonymous Coward · · Score: 0

    Once a programmer can learn to code in 2 different languages -- and I mean actually different, so "C and Java" don't count as different enough for this -- you can learn any language with some time + exposure.

    If banks are having trouble finding people who know Cobol, then they just need to pay more. And maybe, offer to train you in the language. You won't be an expert your first day, but nobody is.

    I just don't see this as a problem. If the banks are having trouble getting experienced COBOL coders, then then need to consider what it costs to entice other programmers to switch, and provide the training and time needed for them to learn COBOL.

    Some people might think that COBOL is too "uncool" and won't take the job. If it was short-term contract work, it's probably not worth the bother to switch languages. But if they are offering a career -- having a steady paycheck so you can afford nice things, can make up for a heck of a lot of coolness.

  98. The Eternal One by Anonymous Coward · · Score: 0

    So the modern programmer is expected to learn a half-dozen new languages a year that pop up for misc. reasons, but it's too difficult to train them on the undying one? Talk about disingenuous.

  99. IIABDFI by Fudoka · · Score: 1

    If It Ain't Broke Don't Fix It

  100. 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.
  101. 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.

  102. 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.

  103. Programming Languages are Shorter this year by Anonymous Coward · · Score: 0

    As a retired systems guy I have seen decades of these discussions. All pretty pointless. Problem is that as I see it, programming languages are expressions of fashion as much as function. And simply saying that anything old is bad and anything new is good is really no different than saying skirts must be short this year... Once one got away from assembler and plug boards the choice of language when there was a choice is more about clarity and supportability by successive generations of developers. Or to phrase it another way -- suitability for intended purpose. I have written a dozen Cobol programs in my life (and a compiler) - and they all compiled and ran first time. But the writers cramp I got from doing so was its own reward. I have seen lots of code in C++, java and so forth -- none it it matched the clarity of Cobol. And there is the joy of writing junk like 'perform unnatural-act varying position until husband-comes-home'. (My personal choice would be Vax Macro, but so what...) Seriously, kids, do we need thousands of programming 'languages'? Really? Its Babel... like thousands of dialects that does nothing to enhance communication or understanding. And over the long run makes us all poorer. And the sales folk richer...

  104. 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?

  105. 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.

  106. 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#.

  107. COBOL is an excellent language by Anonymous Coward · · Score: 0

    Consider:

    It is very easy to learn and code; people who built their careers coding COBOL applications did not migrate from other CS areas with a pre-existing computing background - they learned COBOL as their first language, and this was possible because it was such a simple straight-forward language.

    It arose in the era of the dumb terminal and very limited resources, so it is quite efficient and it does not require a complex IDE and debugging tools.

    It is targetted at business, and does that works so well that nothing superior has come along to replace it.

    It's been around for decades, and unlike more-recent web coding languages, it has proven so solid that there are not 50 alternative languages competeing for the same space with new ones continually arising.

    It's been so stable that much of our economy has rested on top of it (it's been running much of the banking, accounting, taxation, etc) for decades without most people even knowing about it. You know a technology is stable and successful when it is invisible to most people, and its proper operation is simply a societal assumption.

    Any young coder who is out if work and wants a career could do worse than to become proficient in COBOL and seek a position soon to be freed up by a soon to retire COBOL programmer. It's unlikely that the big banks will be migrating to rust, or ruby, etc any time soon.

  108. Just train people by Anonymous Coward · · Score: 0

    If financial institutions could easily replace COBOL with anything that can execute as fast, is equally secure and equally maintainable they would have done so decades ago. COBOL is not particularly difficult to learn; recruit some likely accounting clerks and put them through the six-week course. And better get those courses set up quick before all the old COBOL programmers and totally senile.

  109. 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.

  110. 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

  111. 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?

  112. my 2 cents by Anonymous Coward · · Score: 0

    cant speak for the nation but I attended a Texas A & M branch school whose business school budget couldnt afford to hire PhD CS profs so it had a CIS (Computer Info Science) dept. It churned out grads with CIS degrees who took 2 or more years of COBOL classes (8 semesters) if memory serves. Radio Shack hired grads who wanted to live in DFW which was where a lot of students came from. Lowe's in North Carolina hired a lot of grads.

    I thinkk the prob isnt so much there are no new COBOL grad but rather given where the jobs are and for the pay offered grads would much rather get a job that isnt COBOL centered. Plus the industry is obsessed with the new, and shiny thing not the tried and true thing. Programming apps is way sexier than coding in COBOL.

  113. 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.
  114. ^^ THE answer to the COBOL problem by Anonymous Coward · · Score: 0

    No msg.

  115. 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.

  116. 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).