OS/2 e-Zine! - Now on CD (Click here)
Why OpenSource? - by Ulrich Moeller

Summary: The author of the popular XFolder enhancement utility speaks out on what his reasons were for switching to an Open Source model, and makes a plea for other freeware developers to do the same.

Back in September of 1998, XFolder V0.80 was released. As opposed to previous versions, that version was placed under the GNU General Public License (GPL), which implied that the source code was released. All other software I have written since then has also been placed under the GPL: this includes INF2HTML and the WarpIN alpha versions which have been released so far.

If you are a user of my software, you might already have wondered what the GPL does for OS/2 and why I now stress the licensing issue so much with my own software. Well, there has been quite some debate in the OS/2 world about licensing models recently. I won't go into all of this here; read Chris Wright's articles in OS/2 e-Zine! vol. 4 no. 1 for more details.

But as a summary, the GPL is a general license agreement which was developed by the Free Software Foundation to protect the rights of programmers who wish to publish the source code of their software. The GPL is most frequently used with software of the GNU project and has become more widely known with the evolution of Linux, to most parts of which the GPL applies.

Software which has been placed under the GPL is frequently called OpenSource software. While there are other licenses which can also be called OpenSource, the GPL is the most popular one. (As a side note: The term "OpenSource" is now a registered trademark to prevent misuse of it. That's why I think this term is now preferred over "Free Software". Check http://www.opensource.org for details.)

In this article, I'd like add my personal view on licensing issues and explain why I now think that OpenSource is the software model which might turn out to be a main condition for OS/2 to survive at all (as a non-server OS, that is).

As a consequence I'd like to convince all OS/2 freeware developers to release their source codes, preferably as OpenSource. But I'm not preaching to commercial developers here; there's a lot of shareware out there which is really worth the money and I do not envy developers who do earn money through it. Out of the many, just think of PMMail and PMView, which are among the best on any platform.

However, there are a lot of freeware programmers out there who have so far not released their sources. I will not list them, you know who you are. It is you that I'd like to address with this article.

Why I Released My Sources

In my view, there are two main models of distributing software. Many people will draw the line between software you have to pay for and software you don't. That's what I used to think, too.

The real distinction however, and this is important for OS/2's future, is between software which is shipped with the source code and software which is not.

The problem with OS/2 however is that releasing source code seems like some kind of threat to developers, who feel a lot like Windows programmers in this respect. Source code is something they feel they "own" and that they'd prefer to keep private. It's a bit like letting people look into your diary.

Before releasing XFolder's source code (that is, before V0.80), I had the same feeling. I spent three weeks reflecting on whether to release the sources, and I considered the pros and cons.

Back then, the key reason for me to publish the source code was that XFolder has become a fairly complex application by now, and it had become increasingly difficult to find bugs, because many of these simply do not show up with my system configuration, and I am not willing to buy new hardware just to debug XFolder. I hoped that with the sources some users would be able to find bugs in the code themselves.

The reason for choosing the GPL for the license was that it's nicely complex, and this appealed to me as a soon-to-be lawyer. But seriously, the main reason was that it seemed to give my sources a bit of protection against "code theft"

Why OpenSource Will Help OS/2 In General

My focus has changed since then. I have done a lot more reading on OpenSource software, am following some of the discussions in the Linux world, and by now I have almost half a year of experience with this concept from a developer's perspective. From my perception, there are many more advantages to the OpenSource concept which should convince any freeware programmer to release his/her sources.

The most pressing problem with OS/2 is that there aren't as many home users left as used to be in the "golden days" when Warp 3 came out and IBM did indeed care about the home user market. Most people would agree that this situation won't ever come back again, and this is the reason why many software developers (especially commercial ones) are moving away from OS/2, either to Windows or to Linux, whatever preference they have.

So the key question is this (and this question is not for developers only; OS/2 and OS/2 users need software, and this has to be written): How do we get more and better software even though OS/2's reputation has reached an all-time low and we have less programmers than before?

In my view, there are three conclusions to be drawn from the current situation.

  1. For one, OS/2 software development needs to be done more economically. OS/2 developers tend to re-invent the wheel hundreds of times, because they have to.

    But as Eric S. Raymond puts it ("The Cathedral and the Bazaar", http://www.tuxedo.org/~esr/writings/cathedral-bazaar): "Good programmers know what to write. Great ones know what to rewrite (and reuse)." OpenSource allows for code re-use, so this is may be the most obvious advantage of it.

    There's already one example in XFolder where OpenSource has actually helped in this way, and maybe also one of the most popular features, too. It's the APM power-off after system shutdown, and since my computer does not support this feature I could not implement it myself. So what I did was insert some dumb stub code which gets called by the new XFolder shutdown routines, then hoped that someday, somebody would make these dumb functions intelligent. Atsushi Arakawa rose to the challenge and filled this in with the code from APM/2 by Roman Stangl. He could only do so because the sources of both XFolder and APM/2 were publicly available. So if these sources had not been released, this XFolder feature wouldn't exist.

    By contrast, there are many programs out there which have been released as "freeware", that is, you don't have to pay, but the sources are not available. With many of these freeware projects you'll find that, one day, its developer has had reason to stop further development of that software (this might be lack of time, other interests, business, or whatever), leaving the program pretty much dead as no-one can enhance it any longer.

    A good example of this is NPSWPS, still one of the most widely used OS/2 utilities but which has not changed for years. In order to add just a single feature to it, someone would have to rewrite the whole thing. It just doesn't make sense to rewrite everything that someone has done before, and since anyone who has ever written a PM hook knows what a heck of a job NPSWPS really is, we have the deadlock situation that this piece of software will probably always remain as it is now. This is a situation the OS/2 community can no longer afford.

    With OpenSource software, this is radically different. OpenSource means that not only are the sources available, but people may build on that and create "work based on the Program", as the GPL calls it. If NPSWPS had been OpenSource, someone by now would have started working on new versions, because he or she wouldn't have to re-invent the wheel and we'd have a better version with more features, which we don't have now. We could already have much more OS/2 software if people (including me) had come up with this earlier and other developers could have built upon existing sources.

    Believe it or not, even Microsoft has realized this (from the infamous "Halloween documents", "http://www.opensource.org/halloween1.html"): "The likelihood that Apache [which is OpenSource, U.M.] will cease to exist is orders of magnitudes lower than the likelihood that WordPerfect, for example, will disappear. The disappearance of Apache is not tied to the disappearance of binaries (which are affected by purchasing shifts, etc.) but rather to the disappearance of source code and the knowledge base."

    This is why OpenSource is now considered a serious threat to Microsoft's revenues by themselves. Even if you don't hold Microsoft to be the new Antichrist, you probably do care for more and better software.

    And this is also why Netscape have chosen to release Mozilla as OpenSource. They explicitly referred to the arguments given by Eric S. Raymond when they did so. And most of the really promising OS/2 projects at the moment depend on OpenSource: just think of GIMP/2 (and XFree/2 in the first place), WarpZilla, Win32-OS/2 (whose developers are now going for the WINE sources), the ShapeWindows library, and many more.

    Let's extend that code pool, because many important aspects of OS/2 programming are still missing.

  2. Since many commercial and non-commercial developers have turned away from OS/2, we need new OS/2 programmers.

    This might sound awkward at first: how can we get new programmers if everyone is going away? But from the mail I'm getting, I gather that there are many users out there who would like to write new software, but don't know how to. I've gotten dozens of mails like, "I'd really like to help you, and I think it's great that you released the sources, but PM programming just gets me."

    It was only in 1997 that I started writing software in C, and I do remember very well this situation. The learning curve for writing OS/2 programs is just extremely high, especially when you're going for Presentation Manager or WPS programming (in this order). Once you get into it, it's pure beauty, but getting started is a hassle.

    The existing documentation for OS/2 development can broadly be separated into two groups: for one, there's reference information (mostly by IBM, and partly incomplete and incorrect), and then there's articles about certain individual aspects of programming. The latter applies, for example, to EDM/2, which is undoubtedly the very best programming source for OS/2, but mostly too complicated for beginners.

    The problem is that there is only very little working source code out there. Something a new developer could build upon or take parts out of in order not to have to learn the whole thing.

    OpenSource can help this too because then new programmers can learn from what others have done. They won't have to go through the same mistakes again, like I had to. OpenSource will allow those who are interested to start programming more easily.

  3. Maybe you ask, why OpenSource and not just the sources? Well, the inherent logic of OpenSource is that software based on other OpenSource software needs to be OpenSource too. This is most obvious with the GPL: if you create a "work based on the Program", the GPL between you and the program's creator(s) requires you to place your software under the GPL too. People cannot take the code and make it "closed". As soon as something is added, its sources have to be released. As a result, the amount of available source code always increases.

    It is only this concept which has made Linux so strong. Nobody can take the Linux kernel and make a closed, commercial version out of it without releasing the source code. This has a lot of advantages: as opposed to earlier UNIX derivatives, Linux has never been "forked", i.e. separated into several incompatible versions, and the number and complexity of Linux applications is growing at a rate which has never been observed on any operating system.

    Also, and maybe most important, as Microsoft puts it (again, from the "Halloween Documents"): "Linux and other OSS (Open Source Software] advocates are making a progressively more credible argument that OSS software is at least as robust -- if not more -- than commercial alternatives. The Internet provides an ideal, high-visibility showcase for the OSS world."

    In other words: OpenSource software is more stable. That's because if you release the sources, people can find bugs themselves. And it's better that a programmer somewhere finds a bug before it will ruin someone's enterprise. Very simple.


I have been talking about this to a number of developers recently. Many times I hear, "Well, I do appreciate the OpenSource idea, but my sources are just too ugly to be released. I haven't commented anything."

This is the "diary objection." I admit that I had the same feeling with XFolder V0.80. See, I only started C and PM/WPS programming with XFolder; before that, I used Borland Pascal 7.0 for DOS/Windows and REXX only. Last year, I feared too that some C++-SOM-OO-WPS-Smalltalk guru would come up and laugh at me.

But believe me, this won't happen.

Obviously, clean, commented sources are better than ugly, uncommented ones. But then: ugly, uncommented sources are better than no sources at all. And maybe someone will take a look at your code and try to understand what's going on by commenting out things. That's what I have done with some of the sources I found on the Net and which are now part of XFolder.

Besides, if you look at the sources of XFolder V0.80 and compare it to the current ones (V0.84 at the time of writing), you'll see that I've cleaned up a lot of things during the last half year. Lots more comments have been added, and the structure of the code has been straightened out a great deal, mostly because the code has been split into many more files to make its function more lucid. What I'm trying to say is that the publicity of your source code is also a motivation to clean things up. In this process, I have found quite a number of bugs and memory leaks in XFolder, which maybe I wouldn't have found without this motivation. Trying to re-understand your own code sometimes does help.


To finalize this, I do think that the only chance for OS/2 to survive is that at least the freeware developers who are writing software today must switch to using an OpenSource license, no matter how ugly the sources are.

It is worth it, even if only one person finds a bug in your code. And even if this doesn't happen, maybe one year from now there'll be someone who will use your code to build something even better. Better still, some novice developer might find a reason to start programming.

And even if you don't like the OpenSource idea (despite the arguments I have listed above), please seek a way to publish your source code anyway, under a different license if need be.

Let's release sources now before it's too late.

More readings

"The Cathedral and the Bazaar"
by Eric S. Raymond. Probably one of the most influential Internet articles ever written. This is what convinced Netscape to release the Mozilla sources.
the new Web center for OpenSource information and advocacy. This site also has the "Halloween documents", commented by Eric S. Raymond. I strongly recommend reading this.
"OS/2 Headquarters"
by Tom Nadeau. This has the "Learning from Linux" series, another commented version of the "Halloween documents" with focus on OS/2.
GNU's Not Unix!
Homepage of the GNU Project and the Free Software Foundation, with lots of articles.
Copyright © 1999 - Falcon Networking ISSN 1203-5696
March 16, 1999