How The Latest TRs Bolster App Dev For IBM i
October 17, 2022 Alex Woodie
From Merlin and VSCode to RDi and RPG, good IBM i boys and girls who do their own development will get new toys to play with before Christmas, thanks to a range of new features and functions unveiled by IBM last week as part of its latest Tech Refresh for IBM i.
The introduction of the IBM i Modernization Engine for Lifecycle Integration, or Merlin, was the big attraction this spring with the launch of IBM i version 7.5 and 7.4 TR6 (it was later made available for IBM i 7.3). The offering, which combines a lightweight VSCode development environment running in a Web browser along with DevOps tooling from ARCAD Software served up via containers running in a Red Hat OpenShift environment, has spurred an immense amount of interest, says IBM’s Alison Butterill, the longtime IBM i product manager.
“The community is so excited about this. It’s absolutely phenomenal,” Butterill tells IT Jungle. “I can tell you, we [the IBM i leadership team] are all taking multiple emails and calls a day. It’s truly an amazing tsunami of interest, is the best way to describe it.”
Folks interested in taking Merlin for a spin will now have a chance to do that, thanks to the launch of a new sandbox environment for Merlin in IBM Garage. IBM just added Merlin to the IBM Garage last week, Butterill says, but users will need to have a “registered opportunity” to get access to it.
“We restricted it initially and said it had to be with a registered opportunity,” she says. “We were afraid we have so many people so excited about Merlin that the Garage would be overwhelmed with requests.”
That excitement around Merlin will likely grow as a result of the addition of a debugger with IBM i 7.5 TR1 and 7.4 TR7 (we assume the debugger will also work with IBM i 7.3 too, at least until that release is put out to pasture next September).
When IBM shipped Merlin as a Licensed Program Product (LPP) earlier this year, it did so without the benefit of an integrated debugger. IBM was aware of the limitations that not having a debugger would have on developers looking to build shiny new ILE applications with Merlin, but determined the benefits of getting Merlin into the hands of users sooner than later outweighed the drawbacks. (And if the reports of huge demand for Merlin are correct, it was a good bet to make.)
All that is moot now that IBM has figured out how to decouple the official IBM i Debugger from Rational Developer for IBM i (RDi) and deliver it via a plug-in for Merlin. IBM had the debugger working months ago in the lab, and has finished testing it, which is great news for IBM i shops looking to put Merlin into their developers’ hands and let them begin creating new apps in earnest.
IBM can breathe a sigh of relief knowing this crucial capability will become available on December 2, along with the rest of the functionality in the TRs, which is typically delivered via a collection of PTFs.
“We knew the debugger was going to be a showstopper for some people,” Butterill says, “but we also knew it was coming, so I didn’t mind announcing it before it was available and telling people it’s the next thing on the roadmap. Now it’s on our roadmap, and we did it.”
The story around VSCode (the Web-based development environment at the heart of Merlin) also improves when it comes to IBM i, as several enhancements to IBM i extensions for VSCode are being included with the latest TRs.
According to the announcement letter for 7.5 TR1, the open source IBM i Development Pack for VSCode, which is backed by Halcyon Tech (an outfit founded by newly hired IBMer Liam Allan and his development partner), is distributed via Microsoft’s Visual Studio Marketplace website.
The new additions to the IBM i Development Pack include a new and improved schema browser for the database exploration tool. Also, when perusing the database, results of SQL queries are loaded only “as needed” for large queries. Users will see “major” enhancements to the performance of “RPGLE linter auto-fix” functions. Finally, globalization features have also been enhanced, IBM says.
While momentum for Web-based development is building with Merlin and VSCode, by no means has IBM abandoned its traditional software development tooling, as exemplified with RDi, its desktop IDE for developing new RPG, COBOL, C, C++, DDS, and SQL applications, which also goes by the IBM product name 5733-RDW.
The functionality IBM will be delivering later this year with RDi version 126.96.36.199 is grouped into three areas, including general currency items, community-driven enhancements, and developer productivity enhancements.
On the general currency items, RDi gains support for compiler errors generated for CRTPGM and CRTSRVPGM. It also gets support for the new RPG functionality (more on that below), as well as support for JTOpen 11.0 and the Java 8 JVM.
The community-driven enhancements include an LPEX filter for subroutines and procedures; a couple of preference changes for context assist and the default insertion mode; a new left-hand indicator in outline mode; displaying the file name in hover text for record formats; and several other enhancements.
Developer productivity should go up as a result of several new features, including quick fixes for commenting out unused variables and creating missing variables and procedures; a right-click context menu item for togging between edit and browse modes; support for copy and paste in object table quick filter entry fields; among other enhancements. The full list is available at the IBM RDi Hub.
Last but not least are enhancements to the ILE compilers, which are delivered as Rational Development Studio for i (or 5770-WDS).
RPG gains several new capabilities for manipulating strings, including the ability to support string operations by characters rather than by bytes (or double-bytes for the character sets that support double-bytes). There’s also a new RPG built-in function (BIF) called %CHARCOUNT that will return the number of characters in a string, which might be different form the number of bytes or double bytes, IBM says.
There are also new BIFs for concatenating strings, including %CONCAT for concatenating several items with an optional separator and %CONCATRR for concatenating the elements of an array with an optional separator. There’s also a new prototyped-parameter option for string or pointer parameters called *CONVERT that will allow any data type to be passed as a parameter.
According to Butterill, the string enhancements are geared toward helping RPG developers and programs make better use of languages and databases that store data in strings, such as with JSON data types.
“We’ve had support for strings before, but this is actually manipulating the data within it,” Butterill explains. “So for example, I have an array element and the array element has a full address in it, all packed together. And now I can manipulate within the element, as opposed to having to put it into a variable, manipulate it in a variable, and then put it back into the element. This time I can just do it right within the element itself.”
Some of the newer open source languages and databases send information to RPG applications in formats that are different than what the typical RPG program and programmer is used to dealing with, Butterill says. “So this allows us to build additional structures, if you will, that will allow us to continue to communicate better with those languages and databases,” she says.
Finally, COBOL also gets some love with this TR cycle. IBM has added support for a Target CCSID (TGTCCSID) to the COBOL compiler.