Fresche Takes On New RPG Development And Modernization With X-Elevate
September 27, 2021 Timothy Prickett Morgan
Over the years, Fresche Solutions, the IBM i conglomerate that is focused on development of new applications as well as modernization of existing applications, their interfaces, and their databases, has acquired and built tools that help programmers create Java and PHP programs, or convert RPG applications to Java and PHP. But by its own admission, Fresche did not focus on new RPG application development or the kind of incremental programming that a lot of IBM i shops are doing to gradually modernize their applications, usually through the shift from fixed format RPG to the free form RPG that is similar to modern programming languages like Java.
Today, with the launch of X-Elevate, a new template-driven, development framework for creating free form RPG application or application programming interfaces (APIs) that have a modular architecture, that changes.
X-Elevate, which is available now, was created by Fresche over the past three years and used it to take on some big customer engagements, Marcel Sarrasin, chief product officer at Fresche, tells The Four Hundred. “We developed the tooling internally. We were using it with our services team, and we have three years of doing big services engagements where we kept fine tuning the tool. So it wasn’t three years of solid, pure product development per se.”
But seeing how useful the tool that would become X-Elevate was, Fresche set out to give it the function, fit, and finish that a commercial product requires, rather than just drop kicking it into the community like a lot of open source projects do and then someone has to come in and clean it up and productize it. By the way, Fresche has no intention of open sourcing its tools. And just like it did not use its Java and PHP tools to move people off the platform, it has no interest in helping people move off the IBM i platform with any RPG tool, either. Specifically with X-Elevate, the idea is to help address the needs of RPG shops on the IBM i platform. Period.
As we all know from the annual IBM i Marketplace Survey put together by HelpSystems, the majority of IBM i shops are running at least some homegrown applications that are written in house, and RPG, SQL, and CL are the dominant languages. To be specific, in the 2021 IBM i Marketplace Survey report, 76 percent of the more than 500 IBM i shops polled said they had homegrown applications. It is not possible to know what the mix of third party and homegrown applications is across the base the way the question was asked, but 40 percent of those polled said they had third party applications that were mentioned by name – Oracle, SAP< Infor, Manhattan Associates, Fiserv, Jack Henry, MedHost, and McKesson – with another 26 percent saying Other. As for programming languages, RPG was used by an overwhelming 87 percent of the IBM i shops polled, with SQL close behind and CL coming in third with 64 percent. Java was used by 45 percent of the IBM i customers, and PHP was used at 20 percent – about the same level of use (by customer count anyway, not line count) as COBOL among the IBM i base. Python and Node.js are on the rise, but still a lot less frequently chosen.
So it is significant that X-Elevate attacks new code development in RPG in particular, and is helping customers generate RPG free form at that. And while it is only generating the backend code to feed either green-screen or Web applications and does not include the interface, it can have a number of front ends generate the screens for web applications, including Angular or Vue.js, which can be hooked in the JSON input and output that X-Elevate uses to link the free form RPG code to the outside world.
Here is a useful chart that shows the difference between traditional RPG monolithic coding and what X-Elevate does:
The monolithic, classic RPG code is monolithic, which means the user interface, the business logic, and native database and file access is all embedded in that monolithic code, and it feeds out to 5250 green screens from days gone by, which can be screen-scraped or modernized to run on Web clients as need be. This code is not usually modular or free form, and it is generally hard to maintain because so many people have worked on it, with their own styles and documentation (or lack thereof), over the years.
With X-Elevate, the application development framework has templates where programmers start the process of development, and it has a three-tiered architecture that, as Sarrasin, Fresche has invested a lot in developing. The template can access DDS files and DDL tables and do SQL views, and significantly can supports DDL long field names, which ultimately makes the generated RPG code much more readable and therefore easier to maintain. The RPG free form code that is generated by X-Elevate can be edited in any RPG editor in the market, but Rational Developer for i (RDi) is expected to be the one that most customers will use. The point is, the resulting code crated by the X-Elevate framework is based on best practices and lots of history that Fresche has with RPG applications, and programmers have full access to the underlying source code, which allows them to do modifications to this code as they need to. And the applications are simpler in another way: Data is extracted from the database using SQL in the data access layer, and output is strictly in JSON layer, which connects RPG data structures to JSON and vice versa. The service layer is where calculations and other manipulations of data are done.
Here is what it looks like under the covers:
X-Elevate is a standalone product, too, which has no dependencies on other products from Fresche, and it is different from other fixed RPG to free form RPG converters on the market, says Yuval Oren, product manager of Web solutions at Fresche, who has productized the internal RPG code generator to transform it into X-Elevate.
“Several RPG converters available, including some very good free options for converting legacy RPG,” explains Oren. “But those converters are not really comparable with X-Elevate. With X-Elevate, you create new, modern free form RPG applications and APIs with a modular architecture, while when you are using converters, you don’t really modernize the applications. You still end up with a monolithic green screen application.”
X-Elevate is sold with a perpetual license with an annual support contract, like much of the tooling in the IBM i base, and has a single-seat license so customers can start small before getting seats for all of their developers. The templating framework has two APIs at the moment: the CRUD API for maintaining a given customer record and the Orders API for returning all of the orders for a given customer. Customers can develop their own APIs, of course, and are expected to do so as they do application development.
Use this link to find out more about X-Elevate.