FOSS Licences Wars - First Supplemental

Why I prefer Permissive Licences?

In my coverage of the reasons of why I prefer public domain licences instead of weak copyleft or strong copyleft licences, I probably missed the one that was the most important for me.

I’ll start with a little history. Back when I got my first computer - an 8088 PC XT with two 5.25״ 360 KB diskette drives, and no hard disk, I started programming in BASIC - first the one that came on the BIOS and then BASIC.COM or GWBASIC. (BASICA wouldn’t run on my computer, for some reason). Back then, I programmed mostly games and my friends and I shared tips and programs between ourselves.

I took a long break from programming, and then started programming BASIC again - this time QBasic. Then I got my father to buy a C compiler and he bought me Turbo C++, which I used for somewhat more “serious” stuff than BASIC (though I still used QBasic). Back then I wrote two libraries-of-sorts - called CCalc (for various mathematical routines) and CSee (for graphics) which I intended to distribute as shareware. I don’t recall if I wanted to include the source.

I’ve now made them, and some other C code from that era, available as free and open source software under the Expat Licence.

In any case, back then we were used to the fact that we have to pay for our software, so I probably thought that making these libraries public-domain was not worth it.

After I started getting into the world of UNIX, Linux, GNU, and open-source I realised there was a lot of software out there distributed with the source, which I could download and compile. I used to think of (the old primary FTP host for as a cool collection of source code, which I could download, read the INSTALL file, build and install (sometimes after fixing the source). I wasn’t interested in the implications of its open source nature or the GPL licence. I also downloaded other software. I did know the software was gratis, as opposed to MiniSQL/mSQL which was sourceware and shareware. That was good enough for me.

After I became more involved and started playing with Linux for developing software on it, I learned even more and understood what “free (as in speech) software” (or as it was later called “open-source software”) was all about. One thing I understood back then, was that it took me a long time to fully get to the bottom of all the GPL’s nuances, and that I thought the public domain was preferable, because I didn’t care too much about people changing the licence to something else, or using it in their own non-free/non-GPL-compatible software. A lot of people I have talked with since have shown many misunderstandings of the GPL.

In any case, I had initiated some FOSS projects under the public-domain which didn’t amount to a lot. I also wrote a patch for GIMP which I made available, but has since taken some other iterations and incarnations to be embedded. And then I released Freecell Solver (originally under the Public Domain - now MIT/Expat) and did a lot of extensive work on it, and then started some other moderately successful MIT/Expat projects, or contributed to or adopted FOSS projects under various licences.

So why am I still sticking with the MIT/Expat licence? The main reason I think is that as an open-source programmer, I’m not interested in worrying about how people abuse my code. I don’t like Apple, and am not fond of many Microsoft products. But I’m not interested to prevent Apple or Microsoft or any other developer of commercial and/or proprietary software for Windows or Mac OS X or the iPhone or whatever from using my code in their projects. In fact, I would prefer them to use my code than to create a proprietary replacement. Not to mention that making my code GPLed may also make it inappropriate for reuse by some developers of BSD software, for inclusion into the core BSD distributions, for some developers of non-GPL-compatible-but-still-open-source software, etc. I don’t want that - I want my code to be of the maximal use possible.

I should note that I’m more worried about my code being used for malicious purposes by evil governments, as I think no big corporation in history has been as abusive as some past and present governments that come to mind. But preventing internal use or “defence use” or government use or whatever will make it non-FOSS, (and non-GPL-compatible), not to mention that adding random restrictions (“cannot be used by Neonazis”, “cannot be used by terrorists”, “cannot be used by ‘Zionists’”, etc.) will fragment the software licensing world as a whole, and I would prefer not to open that Pandora Box.

Back to the topic: I don’t want to be bothered about legal issues with my software. If you want to use my code - use it. “Drive safely, the keys are inside.”. If you encounter any technical problems with the code (bugs, documentation issues, etc.) then I’d be interested to hear about them, because that will improve the quality of the product, which will hopefully make it even more successful. But I didn’t become a FOSS developer so I can sue people for violating the licences of my works. I have better things to do with my time, that bring me much more benefit.

Now, on to the issue of whether developing BSD-style code makes me a “sucker”. I covered it earlier in “The GPL, the BSD, and being a Sucker” mini-essay.

To sum it up here, I don’t see why contributing to one’s neighbour (or the public at large), willingly and on one’s free time (which may be called “donation”, “philanthropy” or even “altruism”) and for a non-harmful cause can be considered as being a “sucker”. Everybody is able to use GPLed software of various originators too free-of-charge or put it into good use in many legal and legitimate ways and yet you don’t hear that often that people who develop GPLed software are “suckers”.

I don’t see myself as a sucker just by allowing people (whether individuals, corporations, governments or any other organisations) to use my software in non-free contexts, and don’t think anyone should say that the GPL is the “don’t-be-a-sucker” licence because BSD-style licences are by implications “be-a-sucker” licence. I hate selfishness. (And I don’t mean “rational self-growth” or acting-out-of-one’s-own-best-self-interest, which is what Ayn Rand meant in the book The Virtue of Selfishness - I discuss it in the link briefly).

Another argument that you can often hear against the BSDL was that the Linux kernel was more successful than the BSDs due to its GPLed licence. However, this is:

  1. A post-hoc fallacy - just because Linux is more successful than the BSDs, doesn’t mean that the licence was the main reason for it, or the only reason.
  2. In accordance to #1 - may be attributed to other factors such as Linus Torvalds’ leadership skills, the kernel’s adoption of the Bazaar-style of development, the willingness of Linux distributions to use the GNU project’s software by default as run-time, the cooler name, the lack of initial legal limbo that the BSDs had, etc. etc.
  3. One can find examples to projects in other niches that have been very successful despite their permissive licences - Apache, X-Windows, SQLite, PostgreSQL, Python, libxml2, OpenSSH, etc. So extrapolating from one instance (the kernel) to everything is not scientific.
  4. The BSD-based kernels and operating systems are doing fine, despite not being as popular as Linux. Often, people use code from efforts by BSD developers in Linux (e.g: OpenSSH or some of the OpenBSD wireless drivers that were adapted and integrated into the Linux kernel). So it’s not as if, they have completely “lost”.

While I’m still using GNU/Linux (Mandriva Linux Cooker in my case) because that’s what I’ve grown accustomed to using, I would still like to play with some BSD derivatives and OpenSolaris. I’m also not planning on switching to gNewSense or one of the Free Software Foundation’s endorsed “100% Free Distributions”, because Mandriva is free enough for me.

To sum up, I’m not trying to dissuade you from licensing your software under weak copyleft or strong copyleft licences, but I’m still happy with my code being BSD-style. I’m glad to learn of any use someone has been making of it, and in the few times it has been used in commercial or proprietary contexts, it did not make me regret that I released it as FOSS. I hadn’t wanted it to be an issue in the first place, and so it wasn’t. Hakuna Matata.