Skip to main content

Why Open Source on IBM i Matters

Liam Allan discusses why IBM i users should adopt open source.

"Ask the Expert" in white letters against a teal background.


Q: Why should I learn open source?

Open source is such a popular topic in the IBM i space, but the question about how to get involved in open source still lingers while people figure out what it means for their businesses. The aforementioned question can have a couple of different meanings, whether it’s figuring out how you can use open-source technologies (e.g., Node.js, Python, nginx, etc.) with your existing stack or if it’s figuring out how to contribute to an existing project (or even share your own open-source projects).

You may have, at one point, questioned what open source truly means. Open source does have some differences to freeware and shareware, which are terms you hear less and less these days. The Open Source Initiative (opensource.org) actually provides a definition and some of the important points for open-source projects are as follows:
  • Source code: The program must include source code, and must allow distribution in source code as well as compiled form
  • Free Redistribution: The license shall not restrict any party from selling or giving away the software as a component. … The license shall not require a royalty or other fee for such sale.
  • Derived works: The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software
Let’s take my own project, ILEditor, as an example (github.com/worksofbarry/ILEditor/). The source code is freely available, anyone can redistribute the source or binaries under the GPL (3.0) license and anyone can make changes to the existing source code.

Fitting Open-Source in With Your Existing Stack

Technologies like PHP, Node.js, python, nginx and git, among others, are popular, but that isn’t a good reason to use them in a business. You need to understand what their strong points are and why they are useful. In previous years, IBM has made all this technology available to us on IBM i through the use of YUM.

If you want to use open-source technology on IBM i, you should be using YUM to install it (bit.ly/2XNPi2R).

My two favorite technologies are Node.js and git. These two very different tools can really make a great environment to work with.

Node.js is at the forefront of web technologies. It lets me spin up web applications and web services in a matter of minutes, whether it’s for some prototyping or production work.

Node.js has a simple package manager (npm) to extend your applications with other open-source projects (like express or pug). IBM also provides a native IBM i database driver for Node.js (bit.ly/2XXwKNo).

Git, on the other hand, is source change management and exists to improve developer workflow. It’s been gaining traction in the industry in the last two years or so. Git allows for a “distributed development workflow,” which means developers can work on the same sources without stepping on each other’s toes. It’s common for every Node.js, PHP, Python, etc, project to be managed with git and there is no reason it can’t be the same for RPG, COBOL, etc.

Takeaway

These are just two of the many options for a starting place in open source. I hope the descriptions I have written for Node.js and git might give you the motivation to go take a look at them (or another technology) in your own time

Delivering the latest technical information to your inbox.