Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
IBM Programming

Can IBM's Watson Translate the World's 60-Year-Old Cobol Code? (pcmag.com) 120

"Every day, 3 trillion dollars worth of transactions are handled by a 64-year-old programming language that hardly anybody knows anymore," writes PC Magazine. But most school's don't teach the mainframe programming language COBOL any more, and "COBOL cowboys" are aging out of the workforce, with replacements in short supply.

"This is precisely the kind of problem that IBM thinks it can fix with AI." IBM's approach is fairly straightforward: Rather than relying exclusively on a limited pool of human programmers to solve the problem, it built a generative AI-powered code assistant (watsonx) that helps convert all that dusty old COBOL code to a more modern language, thereby saving coders countless hours of reprogramming. In extremely simplified terms, the process is similar to feeding an essay written in English into ChatGPT and asking it to translate certain paragraphs into Esperanto. It allows programmers to take a chunk of COBOL and enlist watsonx to transform it into Java.

But of course, it's not quite that simple in practice... After IBM and the customer have a thorough understanding of the application landscape, the data flow, and the existing dependencies, "we help them refactor their applications," says IBM's Vice President of Product Management, IT Automation, Keri Olson. "That is, breaking it down into smaller pieces, which the customer can selectively choose, at that point, to do the modernization from COBOL to Java." Skyla Loomis, IBM's Vice President of IBM Z Software adds, "But you have to remember that this is a developer assistant tool. It's AI assisted, but it still requires the developer. So yes, the developer is involved with the tooling and helping the customers select the services."

Once the partnership between man and machine is established, the AI steps in and says, 'Okay, I want to transform this portion of code. The developer may still need to perform some minor editing of the code that the AI provides, Loomis explains. "It might be 80 or 90 percent of what they need, but it still requires a couple of changes. It's a productivity enhancement — not a developer replacement type of activity."

The article quotes a skeptical Gartner Distinguished Vice President and Analyst, who notes that IBM "has no case studies, at this time, to validate its claims."
This discussion has been archived. No new comments can be posted.

Can IBM's Watson Translate the World's 60-Year-Old Cobol Code?

Comments Filter:
  • It should be easy for a computer to translate cobol, after all it was written for a computer in the first place.

    • by CaptQuark ( 2706165 ) on Sunday December 10, 2023 @03:21AM (#64070093)

      One of the problems I can see is replicating all the edge cases that COBOL silently handles one way but the new language might either throw an exception or handle differently.

      Mapping all the Hollerith columns to variables, making sure type casting in the new language matches COBOL's method, matching operands in COBOL to functions in the target language including errors and exceptions, etc.

      Yes, it can be done but it will take thousands of sample data sets with known output results to begin to learn what translation methods into the target language approximate the way COBOL processes that data.

      I remember programming in COBOL in my CS courses in college. A single extra space at the end of a data line in a 500-record set crashed everyone's programs. Not many text editors allowed you to easily spot an extra space at the end of a line. Parsing fixed-length input data is hardly a new task, but the translation will need to know how to handle these problems the same way COBOL does.

      • There's an Emacs mode for that:

        M-x whitespace-mode.

        • Was there an "Emacs mode for that" 40 years ago, though?

          • Oops, bad moderation

          • by kenh ( 9056 )

            You do know that EMACS was first released as macros for the TECO editor in 1976,and GNU EMACS was first released in 1984, fourty years ago next month.

            • I should have phrased the question differently, apparently.

              I assume emacs was not "2023 feature complete" when it was initially released. Did the aforementioned "whitespace mode" exist in 1976?

              • You know that's a very interesting question! I don't think anyone's done a timeline of all Emacs modes with versions and capabilities, although I admit I didn't search the web very hard.

                Presumably, some of this could be done by parsing all the known changelogs? Here are the earliest ones in one file: https://git.savannah.gnu.org/c... [gnu.org]

                Prior to 1984 however I am not sure where the release notes for non-gnu Emacs (if any exist) might be found.

                If you specifically care about 1974 though, I think sed existe

      • IBM predicting the future with shitty whitespace based languages.

      • by Calibax ( 151875 )

        COBOL was the second language I learned back in 1969 after Fortran and the only coding language I used until 1974 when I switched to systems programming mostly in Assembler. I was still using COBOL occasionally to update code until about 1985.

        I call total bullshit on this post.

        White space at the end of a line did not crash anything. The only columns on a card that were not code was the sequence number in columns one through eight leaving 72 columns for code, although with a compile time option the last eigh

        • by whitroth ( 9367 )

          I agree. These young i-jits think all COBOL was written on punch cards. By 1981, everything was online, typed into a terminal.

          And whitespace (we're not talking typos here) didn't affect the COBOL compiler at all. How do you kids think we properly indented code?

      • by 0xG ( 712423 )

        I remember programming in COBOL in my CS courses in college. A single extra space at the end of a data line in a 500-record set crashed everyone's programs. Not many text editors allowed you to easily spot an extra space at the end of a line.

        You had text editors?
        We had punch cards, and you had to cut them out yourself from a big sheet of stock and some scissors...

        • by kenh ( 9056 )

          You had scissors?!

          • by hawk ( 1151 )

            yes, but only after we made shovels from rock,, and used that to dig up enough obsidian that we could chip into scissors.

      • by kenh ( 9056 )

        Translating a COBOL program into, say, JAVA, will produce a program that no JAVA programmer would ever have written to solve the problem. It will have the same logic of the COBOL program by will be written in JAVA syntax. To pretend that AI will "injest" a COBOL program, infer it's purpose, and then code a JAVA program that implements the solution in a JAVA program that incorporates ANY unique JAVA features/capabilities.

      • One great example of these edge cases, is the Unisys flavor of COBOL, which was based on a 48-bit word. Arrays were often declared as one type, such as an array of 100 words, then cast as characters and used to store text. These types of tricks that we now consider taboo, will cause all kinds of issues for any kind of translator, AI or otherwise.

      • literacy.
        i speak cobol.
        so how much are we talking about here.
        and nothing like the letters i b m to designate user unfriendliness

    • Yeah, the analogy with human language isn't a good one. Human languages rely on ambiguity & intelligent, contextualised interpretation to make them broadly comprehensible while computer languages are the opposite. I suspect there's little or no correlation between ability to write code vs. ability to write language.
    • by ShanghaiBill ( 739463 ) on Sunday December 10, 2023 @08:02AM (#64070339)

      I know Cobol. Cobol is easy to learn.

      People who earn big bucks maintaining legacy Cobol are not paid those bucks because they "know Cobol" but because they have deep knowledge of the legacy system.

      Machine translation of a legacy Cobol system into something like Java will solve nothing because the language isn't the problem.

      These legacy systems have decades of hacks, workarounds, and special cases. Translation will make that worse.

      • Machine translation of a legacy Cobol system into something like Java will solve nothing because the language isn't the problem.

        Translation of a legacy Cobol system into something like Java will solve nothing because that language is also a problem.

        • I will solve the most important problem. 'How can we lock these suckers in even harder, while making sure only our consultants can work on it?'
    • by arglebargle_xiv ( 2212710 ) on Sunday December 10, 2023 @08:37AM (#64070367)
      This is actually a problem that a glorified parrot, a.k.a. "AI", is the least suited to. The reason why we keep half-century-old dusty decks in active use today is because they encode a staggering amount of business logic that's been built up in that half century of use. You need to actually understand what all this business logic is doing to move it to something else, and the one thing a glorified parrot is totally incapable of doing is understanding anything. So this is quite possibly one of the worst applications of parrot... uhh, AI, that I can think of.
    • by clovis ( 4684 )

      It should be easy for a computer to translate cobol, after all it was written for a computer in the first place.

      You maybe have said something that an AI might do that would be useful.
      Instead of taking poorly understood COBOL code and converting that to java code, have it produce what should have been the comments of well documented code. That would make the sections of code the AI didn't understand more obvious, I think.
      Then you could build from that using whatever language in the future ising whatever AI.

      I have to suspect that a great deal of that legacy COBOL code has a logic that's based on 80 column card format.

      • by kmoser ( 1469707 )
        Also, spending a few thousand dollars teaching your developers COBOL would be much cheaper, faster, and less error prone than having AI produce new, untested code.
        • by kenh ( 9056 )

          They'd need to learn a bit more then just COBOL - they would need to learn IMS DB/DC. DB2, VSAM, and CICS to make sense of the code they hope to translate.

      • by kenh ( 9056 )

        The issue isn't the COBOL code (its a language designed for non-technical users, like BASIC was), it's the eco-system of COBOL, VSAM, CICS, IMS and/or DB2.

        You can't expect AI to "injest" a COBOL/VSAM/CICS/DB2 application, derive a set of requirements, and then code a JAVA/ORACLE/WEB application that properly implements the requirements.

        The real issue is the poor documentation that defines the operation of the code - if it existed, they could just re-code the applications, unfortunately, the requirements onl

        • by msk ( 6205 )

          get next within parent. . . .

          My first database training was on IMS, in community college.

    • by kenh ( 9056 )

      It should be easy for a computer to translate cobol, after all it was written for a computer in the first place.

      Ha Ha Ha.

      Grace Hopper and friends created COBOL to allow non-programmers to develop business programs without having to become computer experts.

      COBOL was not "written for a computer in the first place"...

    • It's a simple problem to solve. Use the compiler to generate the compiled assembly code. Then hire assembly programmers to maintain it!

      • by vbdasc ( 146051 )

        You mean, the System/360 assembly code? Good luck with finding assembly programmers for it :)

        Although, to be honest, it's not bad at all, and looks surprisingly modern provided that System/360 is almost 60 years old at this point.

        • COBOL has already been ported to newer systems where I think it is used the most. Anyone keeping the old big irons going is already wasting money on keeping the hardware from collapsing.

    • In the late 1980s Lexeme was successfully translating source code. BLISS translated into LISP was horrific to look at, but it ran.

  • Don't need "AI" (Score:5, Interesting)

    by Some Guy ( 21271 ) on Sunday December 10, 2023 @02:45AM (#64070061)

    The company I worked for in the mid-to-late 90s was doing source-to-source transformation of COBOL which retained the semantics (mainly COBOL I and II to COBOL 370, but there were some COBOL to Java experiments as well). In fact we licensed these tools to IBM at the time.

    You don't need "AI" to do this, you just need proper semantic tools.

    • by dgatwood ( 11270 )

      You don't need "AI" to do this, you just need proper semantic tools.

      But... but... how will you introduce critical bugs if you do the translation with a parser and loops and hard-coded conversion routines?

    • Companies don't get sufficient PR cred with "semantic tools".

    • The issue that many pointed out is not translating the language but keeping all the legacy cruft that was required. Maybe AI can do that but considering that legacy cruft may not have an obvious reason to be there, it may not be easy.
      • Are you talking about situations where people did extra smart assed tricks to make a mathematics operation faster by taking advantage of an undocumented feature? It seems like otherwise you keep the cruft by translating and keeping it rather than throwing it away even if it seems unnecessary.

        • Are you talking about situations where people did extra smart assed tricks to make a mathematics operation faster by taking advantage of an undocumented feature? It seems like otherwise you keep the cruft by translating and keeping it rather than throwing it away even if it seems unnecessary.

          No I am talking about exceptions which maybe only sparsely documented or poorly understood. For example in a payment system there were a series of exemptions and benefits enacted at different times for different reasons. Sure it is listed somewhere in the company meetings in the last 30-40 years. But then the code was interdependent based on the systems at the time. Replace it with another system meant payments were missed which would mean other problems like penalties incurred if payments were missed. Who

          • Sure, but if you're using code translation tools there's no reason for them to throw those operations out just because they aren't understood, so long as they can be implemented. Just don't configure it to throw away processing that seems unnecessary.

  • by 93 Escort Wagon ( 326346 ) on Sunday December 10, 2023 @02:48AM (#64070065)

    It's been decades since I've looked at COBOL - but since it was seemingly designed to be easily readable and parseable by humans, I'd think it would be a great candidate for machine translation. However I'm thinking of the old COBOL... it sounds like, more recently, they've attempted to hammer it into something it never was (object oriented). So who knows what that probable monstrosity looks like.

    • I had to learn COBOL in school, but never used it in the Real World. It was designed to be human readable, (instead of statements, it used sentences.) self-documenting and auditable by the bean counters to make sure that the programmers weren't stealing from the company. If there's any computer language that should be easy to translate into a more modern format, it's COBAL.
  • by msauve ( 701917 ) on Sunday December 10, 2023 @03:04AM (#64070077)
    >the process is similar to feeding an essay written in English into ChatGPT and asking it to translate certain paragraphs into Esperanto.

    So, taking something some people can read and turning it into something no one can read.
  • by ghoul ( 157158 ) on Sunday December 10, 2023 @03:10AM (#64070087)
    During Y2K it was found cheaper to bring thousands of software engineers from India to fix Cobol code than to use automated update systems. I guess automated systems have become better in 25 years. Whether they really need to be AI or just some kind of cross-compiler will do?
  • by El_Muerte_TDS ( 592157 ) on Sunday December 10, 2023 @03:16AM (#64070091) Homepage

    The biggest problem with understanding code is not _what_ it does, but _why_ it does that.

    • by dargaud ( 518470 )

      The biggest problem with understanding code is not _what_ it does, but _why_ it does that.

      Then look at the comments. OK, now you have TWO problems...

      • by dwywit ( 1109409 )

        I worked for a quasi-government authority from the early 80s to early 90s.

        They put out a tender to supply hardware and software to bring their systems from paper to computer.

        IBM won the contract (supplied a System/36 with OS, and RPG and COBOL compilers), not because they were cheaper on paper, but because they offered to write the application software.

        For free. We paid full price for hardware, operating system, and compilers, but they wrote the application software.

        I inherited the system, and all the sourc

    • The biggest problem with understanding code is not _what_ it does, but _why_ it does that.

      The biggest problem with preserving COBOL, is not treating it like every other language.

      If you stopped training people that knew a language before, and you still NEED that language, then start training them again.

      Why are we even debating the answer to this. Like every other language.

      • Your comment contains the answer to your ultimate question. You would have to train people. That costs money that nobody wants to let go of. It's more expensive to support more languages.

  • by bloodhawk ( 813939 ) on Sunday December 10, 2023 @03:54AM (#64070119)
    Cobol converters have been around for decades. Converting is a solved problem. The real issue is the poor quality and awful efficiency of the code produced. If it fixes that then great, otherwise it is just yet another translator.
    • Yeah, but this uses the magic buzzword "AI", and we all fell for it and read TFA and posted about it, dammit.

      In the meantime, IBM stock is up 1.7%* on the strength of this announcement, so it's served its purpose.
      * Figure made up for the purposes of this post.

  • by Epeeist ( 2682 ) on Sunday December 10, 2023 @04:09AM (#64070127) Homepage

    Many legacy computer systems are running binaries for which the source code no longer exists.

    Cue question from the dispatch department, "Why are you trying to send a report to a destination that no longer exists?", to which the answer is, "It is produced by this program, but nobody knows why it is run and it can't be changed".

    • Many legacy computer systems are running binaries for which the source code no longer exists.

      Cue question from the dispatch department, "Why are you trying to send a report to a destination that no longer exists?", to which the answer is, "It is produced by this program, but nobody knows why it is run and it can't be changed".

      Greed over a period of decades decided to NOT invest in upgrading systems that were no longer supported, and pocketed the money as bonuses instead.

      System went down and you can't get it back up? Oh, the WHOLE company is offline? Ain't that a bitch. Now where did I put that tiny tiny violin.

      IT/Security professionals really NEED to learn to speak the dialect of DR better. Even if that means walking over to the outlet and pulling the power cord to prove the point to the CxO bragging about how 'prepared' the

      • by vbdasc ( 146051 )

        Greed over a period of decades decided to NOT invest in upgrading systems that were no longer supported, and pocketed the money as bonuses instead.

        System went down and you can't get it back up?

        Failing and irreplaceable hardware is not actually the problem here. Because emulation exists, at least. A fun fact: Unisys still sells new mainframes from the decades-old "Burroughs B5xxx" and "Univac 1100/2200" series, fully able to run the old compiled binaries, created 50 or more years ago, only much faster. The new "mainframes" in question are actually AMD64-based PCs emulating the old hardware.

        Running the old programs is not a problem. Modifying them is. If such a program had its source code available

    • That seems also a failure of management of the application. If the software can only send to that address, then that address is part of it.

  • Nothing new here, when I worked at IBM in the early 2000's they alreay did conversion projects that transpiled cobol to java. This is just marketing, surfing the gen AI hype.

    • Additionally it appears IBM is attempting to avoid all responsibility for the translation while also trying to set up some long term contracts.
      If Watson is that good, why can it not translate to another language with 100% fealty that IBM would warrant?
  • by Casandro ( 751346 ) on Sunday December 10, 2023 @04:20AM (#64070133)

    I mean we are not talking about some hobbyist projects where it doesn't matter if it won't compile in 20 years. We are talking about business software which is used for 50 years and expected to still work in 50 years. There is currently no high-level language which is that stable and provides useful abstractions for those use cases.

    That's probably the main reason why those projects fail. I mean automatic translation from one language to another one is a solved problem, it's called "compiling" and people do it every time.

    • by Anonymous Coward

      It's impossible to explain this to the 'coders' who seem to think that languages and tools spoil if they're left out overnight. Gotta get the flavor of the month on the resume, after all.

      COBOL has a lot going for it. It's easy to read, easy to write, and ludicrously fast. That's no exaggeration. I don't think too many developers today can even conceive of exactly how impressive the performance of the average COBOL program is. That's big part of why so many COBOL to Java projects failed in the 90's.

      Oh,

      • by kenh ( 9056 )

        COBOL has a lot going for it. It's easy to read, easy to write, and ludicrously fast. That's no exaggeration. I don't think too many developers today can even conceive of exactly how impressive the performance of the average COBOL program is. That's big part of why so many COBOL to Java projects failed in the 90's.

        COBOL and the mainframes they ran on were optimized for massive datasets and batch processing - PCs (x86 servers) were not, and crumbled under the load.

  • It would probably be cheaper to make COBOL cool

  • The problem is that nobody knows anymore WHAT the code does, nor HOW and sure enough not WHY this way and not that one.

    If AI gets good enough to understand all the reasons it was done that way, limits of the language, structure, variable handling etc it could work.

  • The real problem is they don't want to pay maintain this skill set, or any other. THEY don't want to pay to reimplement and THEY don't want to pay skilled market rates to attract talent to do the work. Sorry, not sorry. They've banked this technical debt and now they need to pay it down. Accountants and bad leadership doom best practices.
    • by gtall ( 79522 ) on Sunday December 10, 2023 @08:31AM (#64070355)

      Yes and no. Granted companies do not want to pay for re-writing software. However, those COBOL programs have been around for a long time and have the majority of their bugs worked out, so ongoing maintenance is minimal. New code has to be supported, and its bugs will appear over the next decade. And there is no guarantee that the code language you write in now will be supported...except maybe C.

      Large companies also have accountants that are able (we think) to evaluate risk vs. reword. That's why we have so many security exploits. The accountants figure it is cheaper to accept the risk of an exploit that to invest in making their system bulletproof, and that itself won't ensure no risk in the future. The fact that customers get screwed via an exploit has been factored in. The accountants are paid to evaluate risk to the company, not to the customers. And that is why the dead hand of the free market is not going to solve our security issues. The external costs have to be inflicted on those companies outside of the free market.

    • by narcc ( 412956 )

      COBOL conversion project don't fail because companies don't want to pay for talent, they fail because today's hotshot developers don't understand the first thing about writing efficient and maintainable code.

      As for technical debt, it's really hard to claim that the more than 40-year-old code powering your business hasn't paid for itself time and again. Technical debt is when you're replacing core systems every 5-10 years because a vendor stopped supporting whatever fad platform was all the rage the last tim

    • When it comes to COBOL, the main problem is the developers are becoming unavailable due to death, not low pay. While translating COBOL is a trivial thing, the problem is the legacy code may have a lot of cruft which the developers know why it exists but few others.
  • Real world (Score:4, Insightful)

    by NeumannCons ( 798322 ) on Sunday December 10, 2023 @08:51AM (#64070383) Homepage
    - We have the source code. We donâ€(TM)t have a version of the compiler that will work on that source code and no one knows which version is needed.
    - We have the source code. We think that the compiled version we are is different than the source code we have though.
    - We have the source code but itâ€(TM)s uncommented. Itâ€(TM)s also on paper. Weâ€(TM)re not sure we have all the pages.
    - We have the main source code. Thereâ€(TM)s some support programs that were written in Algol and ibm 370 assembler that we lost the code and compilers for.
      - We have the source code. Itâ€(TM)s in these boxes of 9 track tapes.
    - We have the source code. The compiler is refusing to run because itâ€(TM)s missing a license code tied to the cpu version. The compiler company went away 30 years ago.
    - We have the source code. The compiler refuses to compile the source code and weâ€(TM)re not sure why.
    • by larwe ( 858929 )
      Every few years I get a call from my old job with some version of this story; "how do we build XYZ?" and my answer is generally "well, you have to find so-and-so's computer, and you need an in-circuit emulator for the chip attached because the compiler won't run without it and you need the following cables, and then you run this batchfile"
      • I used to work at a 4-person startup where I was tasked with a few different electronics projects. A coworker would always insist that I not use an MCU. I ended up building a test signal generator that would sequentially stimulate all the channels of a large data acquisition from an analog sinewave generator (opamp, caps, etc.), some analog switches, a digital counter/timer, and a demultiplexer. My coworkers were happy.

        Later, I ran into a board space constraint and wanted to use a very tiny MCU for some

    • -we have the source code, but it was passed through an iDevice and became hopelessly corrupted.
  • One thing that could help get new developers would be to have a free compiler and linker. It should have minor JCL support. (Much like Realia CoBOL or the 80's & 90's.) Tossing in something like ScreenIO could help as well.
  • by Murdoch5 ( 1563847 ) on Sunday December 10, 2023 @11:11AM (#64070577) Homepage
    Why not convert into C or another high performance language, that isn't the poster child for bad performance? To be fair, here's Java placement doing Prime Numbers: https://plummerssoftwarellc.gi... [github.io] (133rd). Also, it seems like the companies or teams still have to do a TON of manual labour to get X to Y, so really is there any benefit in using AI other than you can generate a flashy headline?

    This post, and the problem IBM is trying to solve, is the major problem we have in Software Engineering. No one wants to modernize anything, because it was written 10, 20, or 30 years ago, and the teams are still understaffed, under budget, under resourced. They also generally lack enough qualified staff, and that leads to program rot. A good rule of thumb is to review your code every 6 months to a year, and make updates where they make sense, and to bring your code into modern standards, or, change the language / framework.

    5 years ago when Framework X went EOL, I didn't complain and keep using it, I ported our entire code base ~125k lines of code, to a new framework. That took ~1 year to do, but when it was done we didn't have to worry about being on an EOL framework. The same is true for languages, If what you're using now doesn't make sense, even if it did 10 years ago, move languages! One of the other things I normally work on, is moving old code bases from X to Y, sometimes that's C to GO, or JavaScript to GO, or VB to C. It doesn't really matter what you move from and to, proving that “to” is well-supported, and if in 5 years “to” is no longer supported move again. You might have to do this on your own time, because companies rarely want to invest into meaningful retro support, but welcome to Software Engineering, more on the Engineering side of that title.
    • \No one wants to modernize anything, because it was written 10, 20, or 30 years ago, and the teams are still understaffed, under budget, under resourced. They also generally lack enough qualified staff, and that leads to program rot. A good rule of thumb is to review your code every 6 months to a year, and make updates where they make sense, and to bring your code into modern standards, or, change the language / framework.

      Why does code need modernized at all? Banks don't like losing money. Their code is decades old and thoroughly vetted. Doing any updates for the sake up updates is asking for trouble.

      • The bank's infrastructure and legacy systems are a mess. They lack security, stability, hardening in general, and to make up for the holes it's a patch work of rush construction on top of everything. Saying the banking system is vetted, is like saying the car you've had to preheat for 30 minutes before you start, while doing the key trick, and tapping the starter while someone spray Ether in the engine is vetted.

        If you talk with senior level IT, software engineers, security engineers at banks, they'll o
      • by Asgard ( 60200 )

        As the time since last change goes up, so does the resistance to making the next change. At some point nobody will want to change the thing at all, instead pile on some additional layer to effect a modification that should properly have been done in the underlying application. Now you've spread your business logic over a larger area and made future changes a little harder.

        IOW, inertia exists. A thing that hasn't changed eventually morphs into something that cannot be changed. Something that is changed regul

    • converted cobol from mainframes to c to run on unix....
  • The developer may still need to perform some minor editing of the code that the AI provides, Loomis explains. "It might be 80 or 90 percent of what they need...

    What's that famous anecdote about Steinmetz? $1 for the chalk mark, $9999 for knowing where to put it?

    The cobol cowboys and cowgirls (hi Mom!) are going to have their hands for full for the foreseeable future if a 90% solution is the best that the generative AI crowd can come up with.

  • I remember reading a story some years ago about how modernizing an application from Cobol to Java multiplied the memory usage significantly. I suppose they will have to invest a lot in hardware.
    • by gweihir ( 88907 )

      To be fair, Java is an exceptionally crappy language.

    • I remember reading a story some years ago about how modernizing an application from Cobol to Java multiplied the memory usage significantly. I suppose they will have to invest a lot in hardware.

      They will certainly have to invest in a lot more hardware, but you get a lot more hardware for your dollar than you did back when COBOL was fashionable. We all like to complain about how inefficient software is today, and occasionally even with good reason, but for the most part the systems are so much more powerful that it doesn't really matter.

  • by gweihir ( 88907 )

    Obviously, with good machine and runtime specs, you just could cross-compile to a different language, no AI needed. In the absence of that, you need actual insight into the code and how it runs to translate it. No AI has that.

    Doing some 50% or 90% translation is not going to cut it either. That will probably not even safe effort on the part of the actual experts that have to clean up the mess.

  • Here is the secret method to translate all COBOL code: a COBOL compiler.

  • After IBM and the customer have a thorough understanding of the application landscape, the data flow, and the existing dependencies, "we help them refactor their applications," says IBM's Vice President of Product Management, IT Automation, Keri Olson.

    Anyone who has been an IBM customer can see what's happening here...

  • But most school's don't teach the mainframe programming language COBOL any more [...]

    Do most schools teach about when to use apostrophes?

  • by Applehu Akbar ( 2968043 ) on Sunday December 10, 2023 @06:10PM (#64071461)

    Because COBOL was developed in the era before software developers could find mates and reproduce, all native speakers of the language are now in their sixties or older. Anthropologists are now seeking funding to set up a COBOL Preservation Park somewhere in a large urban area. It would be equipped with zealously preserved mainframes, a kitchen that can prepare the speakers' specialized diet of ramen and fatburgers, keypunches, blackboards, vending machines and coffeepots, all mounted in a diorama featuring period cultural artifacts like anti Vietnam war graffiti. It is hoped that the grey-bearded protohumans who used COBOL will be motivated to produce new, even epic works in this language.

  • Reading code written in an an unfamiliar language is annoying but it is still much easier than reading code that produced by an unknown machine transform. The latter cannot even be trusted to be correct. At best machine transforms can be useful to make a human doing the conversions more productive. Even then, the transforms are likely to contain mistakes and be under documented in the quest for maximum productivity.

  • A lot of old software just needs to die or be demolished.

    This problem will sort itself out. If the code is valuable enough to be preserved, companies or people will spend the money to preserve / translate it. If the code isn't valuable enough to spend that kind of money on, then it will disappear, and may it rest in peace.

  • It's not. The magic is in the requirements.

    If you know the requirements, you can rewrite the code. If you don't know the requirements, reverse engineering (or translating) the code won't tell you what the requirements should be. You'll get new code that has some of the old bugs, plus some new bugs that result from the translation, and nobody will know what is a bug and what is intended.

  • Was there a project to translate the US air traffic control system software from Cobol to Ada at some point? Or am I just hallucinating?
  • AI to convert COBOL to another language?

    Is this really supposed to be something revolutionary?
    I'm a retired coder. I guess you could call me a COBOL Cowboy even.
    The first real program I wrote, back in 1980, was a compiler. It took instructions in one language, GW Basic, and converted it to another language, machine code. No AI involved. That's what compilers do. I was told years later in college that compilers were an advanced subject and I could not take those courses until my 3rd year into the CS degr
  • Great! I have like 12,000 lines of pre 1990 Basic code that I wrote and for the life of me can no longer decipher. Can the A.I. help me with that?
    • by vbdasc ( 146051 )

      According to my personal experience, Basic code form the 1980s tends to be like like the winners of the Obfuscated C code contests. No AI could help you with that, I'm afraid.

  • by whitroth ( 9367 )

    There's a COBOL module in gcc, so it can compile COBOL.

  • A sure sign you have truly failed, is Gartner doesn't breathlessly believe you.

Life is a healthy respect for mother nature laced with greed.

Working...