banner logo
Updates Blog Support Contact Links
Programming JdiWeb JdiMOO JdiBoy JdiMail JdiMOOpp NetCheck Tutorials
Gaming AVR Othello

Archive for October, 2009

Open Source Issues

Saturday, October 24th, 2009

First, I want everyone to know that I love open source software and Free software (as defined by the Free Software Foundation). I use Linux every day on my desktop. I use OpenOffice.org as my office suite. I use Notepad++ on windows, I use Firefox, Thunderbird, Adium, Pidgin, and countless other worthy examples of free software. The issues I’m about to bring up exist in closed source software, and are usually exacerbated by that fact. This is probably a fundamental issues with software. But open source software advocates (including myself) often ignore these issues, or even claim they don’t exist because of the open source nature of the software.

The first issue is with compatibility. Open source advocates often claim that, because the source code is available, one can make the program to run on any system they desire, even if the original developer does not want to, or is even completely unavailable. You could take a long dead project, re-compile it on your new platform, and it works. At least that is the theory. And the idea goes the same in reverse: take a new project, and re-compile it to run on an old system that no one wants to support anymore. But there is a catch. To do either stunt, one has to be rather knowledgeable about programing, and possibly the software they are working with. Then they would probably have to spend a long while porting that software (possibly creating new bugs, removing features, or breaking it entirely) just to get it to compile and run.

Case in point: I recently had a need to run a SIP phone on a Red Hat Enterprise Linux 4 machine at work (for those that don’t know, RHEL 4 is rather old, about 3 or 4 years old, I’d estimate, and they are up to 5.4). My first thought was to try and find out if the rather new Ekiga project was available as an RPM that I could easily install. All available RPMs would not install due to the old version of RHEL. So I tried to grab the source code and compile. After updating numerous libraries as far as I could with RPMs, I attempted to compile Ekiga, only to have it fail because I still lacked some libraries or versions of them. After spending hours attempting to get it to work, I finally gave up and found another way to do what I needed to do. I’ve also had a similar experience trying to build an old program for a new system. There are so many dependencies that it becomes next to impossible.

Windows people usually don’t have much of an issue with this with commercial software, as they often pack in the necessary versions of everything, and manage to make sure they don’t overlap, usually. Running newer software on older machines may work less well because of some libraries and the like, but it usually works ok, at least for a few versions.

So this idea that, because the source code is available, it should always be able to work how you want it is more theory than reality. Closed source software also has this issue, but, because of other workarounds and the like, usually sidesteps it. It does mean that, if someone happened to come along years latter to find some ancient program still running, that they could figure out the bug easier because the code is available to him.

The other issue is related to that last note: that the source code is always available. Sometimes projects die, and, despite attempts to make sure that the source stays available, it might get lost though hardware failure, or server neglect, or some other issue. Most of my projects are only available on my site, sometimes with source code included or available. Some of them are mostly abandoned, meaning I have no intention to work on them in the foreseeable future. If my server died a horrible death, it would probably take my projects with it. I have backups of them, but if I moved on completely and just had this site for historical reasons, I might deem it not worth my time and money to put back up. Or, if I passed the reigns to someone, they might not want them back up, or forget about them and not know they disappeared. I’m not saying that it will happen, but as a what if. Then, if someone finds a link to a project of mine down the line, and realizes he needs the source (or even just the binary), he can’t get it. He searches for a backup, or someone that had a copy at some time, and can’t find one. Then my project, despite being open source and available to anyone, is gone for good, and that’s the end of the line. The guy is out of luck.

I’ve run into that issue before with closed source programs. A binary library I used for one version of my web server had a bug where it wouldn’t release a graphic handle correctly, and thus the system would run out of handles and the computer would have to be restarted. I had found the library about a year prior to when I found the bug. I went back to the site to find it exactly the same. I sent the owner an email though the site, asking for either a fix or the source to fix it myself, if he was too busy to be bothered. No response. I went back a few months latter, and found the site completely gone. Not even a parked page. I probably have one of the few copies of the library left. The only difference this being open source would have made is that I could have gotten the source when I went back the first time. But I could have just as easily missed my chance had the site closed a few months earlier.

I don’t think there are any solutions to these issues. I merely want to bring them to light so that people are aware that open source is not a panacea to possible future issues.