Information Systems:Retiring Python/open-source development on IBM i

From uniWIKI
Jump to navigation Jump to search

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