Open source on IBM i is a thing! Let's make sure it grows.
I recently had the pleasure of speaking at the Wisconsin Midrange Computer Professionals (WMCPA) conference in Delavan, Wisconsin. During the event, I was asked to participate in a roundtable on open source. This topic is near and dear to me, so I gladly agreed to participate. There was a truly all-star panel, and Charlie Guarino emceed. The discussion with the audience was great, and I think all left with a better understanding of the open-source landscape in general as well as on IBM i.
There is certainly more excitement in the area of open source in the IBM i community than ever before. Why has it taken so long? How do we grow the open-source community on IBM i? This month, I want to address these topics and more.
Traditionally, there was not an abundance of open-source projects for IBM i. However, a few projects were widely used. Scott Klement's HTTPAPI and FTPAPI were the first projects I can remember using in my IBM i applications. There may have been other projects that were in use, but I was not aware of them.
So, why weren't there more open-source projects? Honestly, I don't know the answer to this question, but I can share some observations and opinions on the matter. First of all, in my past experience, I found that IBM i developers in general were leery of open source. Perhaps it was because they did not fully understand the concept. Perhaps their employers had a distaste for open source. I won't speculate which situation was most common, but I'm sure there was a bit both.
I believe there were two more pieces missing for an open-source community to sprout. In order for this type of community to grow, there must be developers willing to tinker. Many of the IBM i developers I knew back then just wanted to go to work, write code, and go home. Writing code outside of work was not going to happen. Programming for these developers was a job, not a passion. The second piece missing was a place for those few passionate developers to develop. Most developers didn't have an AS/400 in their basement. Most employers wouldn't allow development of anything on their system outside of their own line of business.
Things began to change with the introduction of Zend Server to IBM i. Having an installation of PHP on IBM i with IBM's blessing opened a new world to our community. When companies began using PHP and discovered the plethora of open-source solutions available in PHP, shops warmed to the idea of at least using open source. It was without a doubt an important first step.
IBM has since introduced more open-source technologies to IBM i. Node.js, Python, and many other technologies are now delivered directly from IBM. This has led to more open source being consumed on IBM i systems. Shops see the benefit of the solutions freely available to them. These solutions allow IBM i developers to accomplish more than ever before.
This brings us to the current landscape of IBM i open source. The community is finally starting to truly come together. With the support of IBM and industry leaders, things are happening. It is truly an exciting time to be a part of the community, but what has changed?
It has never been easier to find a place for hobby development. IBM i access is available in the cloud. There are several options available for hosted IBM i that you can use for tinkering. I personally have experience with iDevCloud and Litmis Spaces. Of course, these are not the only options out there. If you have a provider that you use and recommend, feel free to post in the Comments section below. In addition to cloud options, if you are developing solutions using open-source languages, you can do development right on your computer. Node.js, Python, PHP, and other languages can be coded and tested on your local machine.
Collaborative tools for developers have matured. Git has become the de facto source-control tool for open source. Cloud-based repositories such as GitHub and Bitbucket have made collaboration on code easier than ever. Package managers such as NPM for Node.js make installing solutions as simple as a single command. In fact, IBM will be implementing yum for delivery of open-source features in the near future. This will make getting new languages and technologies easier than the current licensed program model. If you want to learn more about yum on IBM i or try out the beta, have a look here.
IBM i developers have changed. That's right, the developer community is evolving. IBM i is no longer just an RPG/COBOL box. As the system has added new technologies, more developers are moving out of their comfort zones. ThereÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢s still a long way to go, but the shift in IBM i shops to accept open-source technologies is apparent. If you are not learning these new technologies, you should start now.
There are IBM iÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Å“specific resources and projects available now. For ILE open-source projects, go to https://github.com/OSSILE/OSSILE. Another great resource is https://bitbucket.org/ibmi/opensource. Here you will find info on open-source projects, links to articles and presentations, and other useful resources. The IBM i OSS community was collaborating via Ryver, but due to a change in licensing, that community will be moving to a new platform. When that move is finalized, I will add the new location to the comments of this article.
So, where do we go from here? If we want the IBM i OSS community to thrive there is one simple key. We need to get involved! Communities are made of people. We need IBM i developers and administrators to contribute. An effort like this cannot be carried by a few community members. There are lots of ways to participate.
If coding is your passion, find a project that interests you and contribute code. If you don't find a project in which you want to participate, then start your own. Think of something that would be useful to others and start sharing. This is vital to growth of our community.
If you don't want to code, don't worry. There are other ways to promote the movement. Become an advocate at your shop. Talk to management and other developers about the open-source resources available on IBM i. Propose projects that use open-source projects on IBM i. If developers don't spread the word, their shops may not know what is available to them.
Do you have a knack for breaking things? Download and use open-source projects. Test them and provide feedback to the authors. This is absolutely critical to the lifecycle of an open-source project. While I don't contribute code to Liam Allan's ILEditor project, I do help test new functionality in the editor and give my sometimes-blunt feedback. I also give Liam suggestions for new functionality I would like to see. Authors need input on ways to make projects better just as much as they need reports of bugs.
If you really want to be a hero in an open-source project, offer to write documentation. Documentation is a necessity for any project, and time spent creating it is time that the authors could be using to work on the project. It may not be glamorous work, but trust me, every open-source project author will appreciate the work you put into documentation.
It's Up to You
The future of IBM i is in our hands. The days of waiting for IBM to provide solutions to business needs are long gone. As more IBM i developers collaborate and contribute to open-source solutions, our community will thrive and more solutions will become available. This is your call to action. We need you to help the community. Will you answer?