IBM Looking To Open Up Debugging On IBM i
June 8, 2022 Alex Woodie
Things are moving quickly now in the IBM i development world, particularly when it comes to lightweight, Web-based IDEs, such as IBM’s new Merlin. However, the need to debug programs and the lack of a debugger for these IDEs is causing a bit of a roadblock to developer productivity with these newer IDEs. That’s why IBM is seeking a way to get IBM i debugging capabilities into more people’s hands.
The official IBM i Debugger product is bundled as a JAR file with IBM Toolbox for Java, and is directly integrated with Rational Developer for i (RDi), IBM’s flagship Java-based integrated development environment (IDE) for the platform. There are several components, per IBM i Debugger documentation, including client-based tools like Debug Manager, System Debugger, and IBM i PASE System Debugger, along with two host-based tools, Debug Hub and Debug Server. Noticeably absent are any plug-ins or connectors for Web-based IDEs.
Debugging is a critical part of the application development process, but the close integration with RDi and native host-based development tools (like SEU) works to restrict access to this crucial tool. With the delivery of IBM i Merlin, which contains a Web-based VS Code IDE among its various components, the IBM i product management team is looking to loosen access to the IBM i debugging capability.
IBM currently has a debugger for Merlin working in the lab, Tim Rowe, business architect for application development for IBM, said at the POWERUp conference last month. The plan is to finalize the debugging capability and deliver it to Merlin users with a PTF by the end of the year at the latest, and hopefully earlier, Rowe said.
In addition to giving Merlin access to IBM i debugging capabilities, the work will also give a path forward for other Web-based IDEs access to debug IBM i programs, according to Steve Will, the longtime IBM i chief architect who recently added IBM i CTO and distinguished engineer to his resume.
“We want to open up that interface so that not only Merlin’s debugger, but other debuggers can be built to connect to IBM i,” Will told IT Jungle at COMMON’s recent annual conference. “Because every development tool that’s going to help clients modernize is going to need a debugger, and we recognize that that has been sort of a gap that’s existed.”
Will mentioned Liam Allan’s VS Code-based IDE for IBM i development, called Code for IBM i, as another example of the need for debugging capability to be easier to access and more widespread on the platform. There is also MiWorkplace, a Web-based IDE offered by Remain Software, which also needs IBM i debugging.
“So there have been other vendors out there that have created IDEs,” Will said. “And they can only go so far with the development, and then they’ve got to debug, and they have to turn it over to IBM tools. And we don’t want to be the sole provider of those tools because that ends up gating a lot of people. So we want to make it possible for other people to write debuggers that can help move us forward.”
While IBM hasn’t officially announced its direction, it has a pretty good idea at this point. Chief among the options is following in the footsteps of the IBM Z team, which delivered an interface to mainframe debugging capabilities from outside IDEs. It doesn’t hurt that the Merlin project itself is loosely based on Wazi, which is a Web-based IDE for the mainframe based on the open source Che/Theia frameworks for VS Code.
“We obviously have a debugger in the system today. RDi connects directly to that. That’s the toolset that can connect directly to the built-in debugger,” Will said. “What we’ve never had before was a standard that could be exposed. A standard has been created that the Z platform has used, and we can implement a standard that’s been based on something Z has already done and published.”
The mainframe team used an industry standard protocol to hook the IBM Z debugger up to Wazi, and IBM is currently working to enable that on IBM i, Rowe told IT Jungle.
“Now obviously debugging on Z is not the same as debugging on i,” Will said. “But the same basic constructs are there. You have to be able to set a break point, and you have to be able to look at things. . . . So there is now a standard that we can follow. So that’s how we would do that.”
According to Will, the debugging capability will be delivered as a plug-in for IBM i Debugger.
“There will be a plug-in that will go into the IDE that will allow you to, in addition to all other cool functions you can do browser-wise, it will allow you to jump into the debugger and the debugger will have a handoff to the RDS portion, the compiler-debugger portion,” Will said. “We’re focused immediately on the ILE compiled languages, but we’ll do more scripting languages later.”