Over the years I've come across various new open source projects that seem awesome at first glance, but on further investigation leave me with a bitter taste in my mouth. This is not because they use PHP (which is my pet hate, and ghastly in its own right), but rather because I am unable to use them because of the technology choices they made.

One of the systems I looked at recently was built on the .NET framework, which put an immediate damper on it. You see, I don't use Windows anywhere, and the main prerequisite of the .NET framework is Windows, so I cannot run it on my platform of choice, which is Linux.

By choosing to build their software on a proprietary stack they actually denied me the freedom to run the software on my platform of choice. I don't know about you, but that sounds counter to the freedoms that open source is all about to me.

This thinking holds both ways though. If you're building any software that is something more than an operating system, you really should be catering to as many options as possible. Building something for Linux only is also counter to open source, if it cannot easily be ported to other systems like Windows or OS X.

I have been through this myself, and I can tell you that it is much better on the open side of life. While I didn't start the OpenLP project, and so I initially didn't choose the technologies, I didn't help by being happy to continue with the status quo. You see, OpenLP was originally developed in Delphi, a Windows-only development environment. It was great for getting something out quickly, but it severely limited the amount of help we got. Eventually I was the only developer, with a few dedicated testers. The reality was that Delphi was a dead-end choice with the Windows platform losing popularity, Delphi itself heading off into obscurity, and no interested developers to speak of.

After I had released version 1.0 I had various glorious ideas of fixing everything that was wrong with 1.0 in a 2.0 release, still built in Delphi. The reality was that while I now had a fellow developer (thank you Lord for Derek!), it was still going to take forever to produce a cross-platform version as long a I held onto the current platform.

As I started talking more and more of a new cross platform version, the news started garnering attention from various developers who were interested in contributing toward the cross platform version. In the 3 years prior to this, the Delphi version had never managed to gain the same level of attention. It had become apparent to me over the years that the number of interested developers was definitely in relation to the openness of the underlying technologies - the more open the technologies, the more developer interest it garnered.

After discussions with the couple of folks who were interested in helping out, I decided to scrap the Delphi version and just hop directly to an open platform for version 2.0. That was hands down the best decision I ever made for OpenLP. While developers have come and gone over the years, using an open platform has meant that anyone who wishes join can do so easily, no matter their operating system of choice, and this has directly impacted the project in a positive way. Now OpenLP can boast to being only real cross platform church worship software, supporting more platforms than any other software in the same category.

By employing an open set of technologies for your open source project, not only do you give your potential users the freedom to run your software on their platform of choice but you also directly benefit your project with development resources and a longevity that you don't get with a proprietary platform.


comments powered by Disqus