Information Systems:Retiring Python/open-source development on IBM i
This page discusses specifically the project between 2017-2019 to implement a post-RPG software development strategy on IBM i by using a modern programming language as well as open-source software. As a concept, this was (and this day continues to be) an approach strongly advocated by IBM for users of IBM i.
The following archived articles are related to this endeavor:
History
- uniPHARM uses IBM i to host its ERP. The ERP and its extensions (known as UNITY extensions) are programmed in RPG, which is an aging language (officially "legacy")
- IBM i is a highly proprietary operating system but contains a "space" that emulates a Linux environment (PASE), complete with a shell. Somewhat analogous to WSL.
- Starting in 2017, IBM injected mass improvements to PASE, porting over major programming languages and open-source software such as MySQL/MariaDB, Python, Mono (.NET), Node.js, and nginx. They essentially created Linux within IBM i (pedants would be quick to correct this but it's the practical truth).
- Along with the introduction of modern programming languages to PASE, IBM also provided XMLTOOLKIT, which was a system API of sorts to allow these programs to interact with IBM i programs and objects.
Therefore, the ability to use modern, open-source software and programming languages, combined with the proximity to the built-in Db2 database and usefuleness of XMLTOOLKIT to interface with the system, made this a dream situation, on paper.
Decision to abandon
There were several factors that led to the eventual demise of this endeavor and strategy:
Issues with package 'flavor'
Despite the software being generally known to the world,
Newness of technology to a legacy audience
It became apparent after a year or two of observing the IBM i OSS community that they were in a state described as a "peak of inflated expectations". Community discourse mainly pertained to how "cool" the technology was, and conferences/tech-talks would always showcase pedestrian examples, focusing more on the fact that the technology was indeed running on IBM i rather than how to use the tech to solve real-world business challenges. This was found to be a major barrier, as there was no active development community experiencing the same type of issues.
Performance
The Power8 is a well-spec'ed machine, but ultimately it has a single-core CPU (i.e. 1/6 activated) and spinning disk storage. While the design of IBM i may be able to skirt this sort of a legacy hardware configuration (in the age of multi-core CPUs and flash storage), these bottlenecks very obviously affected performance in PASE (the emulation taking palce may also very well be a factor). The web server (nginx) and app server (gunicorn) would be sluggish compared the built-in IBM i HTTP server which runs the sites built with WebSmart.
Database flavor differences
Db2 is somewhat supported although this