IBM Developing AI Coding Assistant for IBM i
May 22, 2024 Alex Woodie
During his keynote presentation at the POWERUp 2024 conference Monday, IBM i CTO Steve Will announced that IBM is actively exploring ways to incorporate generative AI into the IBM i platform. The most promising of three individual but related projects is a plan to build a large language model (LLM)-powered coding assistant for IBM i that will initially provide three functions to support RPG development, with more expected in the future.
The genesis of the coding assisting project for RPG, which doesn’t have a name yet, can be traced to last year’s launch of watsonx Code Assistant for Z, which converts COBOL to Java, among other capabilities. After the mainframers got a copilot, members of the IBM i midrange community pestered IBM about whether IBM i would be getting something, too, and if so, then when?
“Some of you in the audience contacted us and said, Is there going to be some code assist for IBM i and is it going to transform RPG into Java?” Will said during his keynote at Fort Worth Convention Center May 20. “And we were pretty darn sure that that was not the right thing to do for this customer base. But we began thinking about what we might want to do in this space.”
After convening with a group of advisors and conferring with various groups’ councils, Will and his team established what direction they would take.
“What we decided that we really needed to do was to create a code assistant that could help programmers’ existing RPG, not move from RPG to something else,” said Will, who also holds the title of distinguished engineer and chief architect for IBM i. “Our biggest problem is that when you hire a new programmer, it can be difficult for them to take this massive amount of RPG that exists in the world today and add something to it, keep it up to date, etcetera.”
That will be the first function delivered by the new coding assistant that IBM has planned for RPG: explaining what a section of RPG code does. LLMs have proven themselves to be as adept at understanding and generating computer languages as they are natural languages, such as English or French. So summarizing existing RPG code will be job number one, or numero un.
Considering the amount of old, poorly documented RPG code floating around, this GenAI-powered language understanding capability would be well received, Will predicted.
“This is one of the issues we tend to find with new programmers going into old code,” he said. “It doesn’t matter how well somebody thinks they documented it — if it was written in RPG 2, it looks really hard to understand to a brand new programmer. And so if you could have a tool that would do that, that would be very, very beneficial.”
Once an LLM “understand” a programming language like RPG, it can start writing it. So that is job number two for the forthcoming IBM i copilot: generating RPG.
“If you’ve used any sort of generative AI at all, one of the things that you know that you can do is you describe what sort of software you’d like, what sort of subroutine you’d like it to write, and it will write it in that language,” Will said.
“Now, it might not be the best performing version of it, but it’ll probably get pretty close,” he continued. “And if you were a non-RPG programmer and you said ‘Please learn, write me something that does this’ and the RPG came out, that would be a very beneficial thing to you. You could start there and then figure out what else needs to be done.”
The third function that IBM is targeting is the writing of test programs.
“Wouldn’t it be cool if you could give this tool a program and then say ‘Write me a test program that will test all the paths or the edge cases or whatever for this?’ Wouldn’t that be cool?” Will said. “And that became one of the core things that our project would want to be able to do.”
This project is very new, and there are still a lot of unknowns around it. But Will said he’s already seen a proof of concept (POC) for a GenAI-powered AI assistant (some call them copilots) that was trained on RPG. The POC was developed by an IBM i customer that he didn’t name.
“They worked on it for a few months and they produced a passable result,” Will said. “I mean, it’s not good enough for prime time, but it proved that you could do all of those things.”
Will shared some screenshots from the POC that showed the AI assistant generating free format ILE RPG procedure based on a table defined in SQL. Another screenshot showed the AI assistant being presented with “a bunch of gobbledygook stuff that really was RPG” and then explaining what the RPG did in plain English.
“And then we were able to say, OK, given the procedure I’m about to give you below and the DDL associated with it, write me a test program that covers the edge cases,” Will said. “And sure enough, it started writing a program for each test case…”
“That’s pretty cool, I would say. Sound cool?” he continued. “If you had a tool like that that you could make available to all of your developers, particularly the ones who haven’t had any experience with RPG, wouldn’t that be a really great thing to have?”
While IBM is targeting those three functions explained above, it’s already entertaining other ideas. For instance, the assistant could be used to migrate old System 36 code to free format ILE RPG IV code, Will said. Or the code assistant could suggest ways to replace an old greenscreen interface with newer open source technology.
“Or what if we could transform the old data definitions that we had into modern SQL and Db2? Wouldn’t that be cool?” Will asked the audience. “Yes, that would be cool. We could do so many things. That’s the power of generative AI, is that if you train the model, it can help you do that.”
It’s unclear what the timeline for the delivery of the AI coding assistant is. We do know that Will and his team intend to use IBM’s own Watsonx LLMs for this project, which makes sense. But that brings up another topic: IBM needs RPG.
IBM created the RPG language, and it owns it. It has a fair amount of RPG that it has developed over the years for various demos and what not. But that’s still not enough code to train an LLM on. That’s why Will is soliciting RPG from the IBM i user base.
“Any of you who would like to work with us to submit code that can be used to train, we will work with you now,” he said. “I can tell you for sure that anybody who wants to donate code and have it in the open, we’re going to accept it, period.”
IBM isn’t quite ready for the IBM i community to start sending it RPG. There are some details that it hasn’t solidified yet, Will said. Folks interested in donating their RPG will have to sign away the rights to it to allow IBM to use it to train its new LLM, but the actual process for that hasn’t yet been created.
During his keynote, Will discussed two other AI initiatives IBM is working on with IBM i. The first one involves using AI against IBM i transactions.
“There are AI workloads that can sit next to the transaction stream and help you notice things, help you figure out trends, help you figure out the fraud may be happening, etcetera,” Will said. “What you’d like to be able to do is to have that AI workload come up very easily and connect back to that data and transaction source.”
IBM needs two things to happen to make this possible. The first is open source technology to connect the transactions in IBM i to the AI. “There is a set of standards, a set of protocols, that the whole industry is gathering around and we need to make sure that that’s available,” he said. “We’re investing in that right now. This is a directional thing. It’s happening behind the scenes. And in the future you will see us talk about connecting IBM i transactions more and more to AI because we’ve invested in those technologies.”
The second additional AI project IBM is working on involves operational use cases for using AI on internal data generated by IBM i.
“If we can figure out how to get the right transaction data, like messages that go to QSYSOPR and so on over to an AI workload that can do automated operations, it could then help you run your machine,” Will said. “And so that’s another thing that we’re focusing on–what are the necessary open technologies that carry information about operations and networking and performance to an AI workload so that it can help you do things. That’s another directional thing that we’re headed towards.”
RELATED STORIES
The Time Is Now To Get A GenAI Strategy
Top Priorities in 2024: Security and AI
Thoroughly Modern: Proceed With Caution With AI In The Landscape Of Cybersecurity
IBM i Shops Are Still Getting Their Generative AI Acts Together
IBM To Add Generative AI To QRadar
How Long Before Big Blue Brings Code Assist To IBM i?
Generative AI Is Part Of Application Modernization Now
Sticking To The Backroads On This Journey
With Fresche’s New CEO, There Are No Problems, Just Solutions
Enterprises Are Not Going To Miss The Fourth Wave Of AI (The Next Platform)
IBM Introduces watsonx For Governed Analytics, AI
Technology Always Replaces People While Augmenting Others
Very cool!
Any idea on what hardware specifications are expected to be required to incorporate Generative AI into IBM i?
Thank you,
Jozsef
The assumption is that you will use the Power10 MMX units to run inference and that you will use some other machinery on which to train large models or use pretrained models that are augmented with corporate data. As for what the coding assistant will need, it depends on where the coding assistant is running.
IBM in 1993: RPG programmers need C! via Jennifer Hamilton
IBM in 1997: RPG programmers need Java! via Phil Couthard and George Farr
IBM in 2001: RPG programmers need EGL! via nobody #sad
IBM in 2012: RPG programmers need PHP! via Allan Seiden
IBM in 2015: RPG programmers need Node! via Scott Klement (with apologies to Scott Klement)
IBM in 2024: RPG programmers need RPG! via Steve Will
That’s pretty funny, Roger. And accurate.
As a mid-level IBM i developer, this announcement is quite disconcerting. The dilemma that persist is…how should one adjust the sails to this big oncoming wave? In what direction COBOL and RPG programmers shall head now…Java, GenAI or towards the woods? 😋
Well, for what it is worth, I headed for the woods in 2016. . . .
Doh. I forgot one. IBM in 1991: RPG programmers need SmallTalk. Via Dave Thomas.
Yeah, I was sitting at 590 Madison for that one, and then I got a SmallTalk compiler and played around with this new-fangled “object oriented programming” thing for a bit and realized, once again, that I am not really a programmer unless I really, really, really have to be.
IBM has a current market capitalization of 157 Billion
SAP has a current market capitalization of 242 Billion
On April 1, 1972, five former IBM employees – Dietmar Hopp, Hasso Platter, Claus Wellenreuther, Klaus Tschira, and Hans-Werner Hector – started the company SystemAnalyse Programmentwicklung (System Analysis Program Development).
(after their IBM COBOL application project was cancelled)
Microsoft has a current market capitalization of 3.2 Trillion
Google has a market capitalization of 2.1 Trillion
Oracle has a marlet capitalization of 343 Billion
SAP, Microsoft, Goog;e, Oracle, and many othrtr, develop and deliver essentilly turnkey sophisticated applications packages for customers, not needing pogrammers
IBM had the successful Installed User Program (IUP) offerings to deliver sophisticated applications packages directly to customers, not needing programmers, but IBM cancelled the IUPs,
RPG was developed on the IBM 1401 comouter
IBM needs to deliver turnkey sophisticated applications packages directly to the customer to succeed like all the others.
Where should we send code?
I have a bunch of templates which I’d gladly share with IBM for this project
I do not know, but we can find out.