In the first issue of Free Software Magazine, Bram Moolenaar, author and maintainer of Vim, a highly capable vi clone, expressed his views on free software and discussed his choice of license for Vim. Vim may qualify as free software (although some clarification in the Vim license would be welcome), but Moolenaar's views on software licensing are not compatible with the philosophy of the free software movement. Moolenaar's article contains some misleading and incorrect descriptions of the GNU GPL. His statements make me wonder why they were included in a magazine dedicated to discussing free software.
Just prior to his flawed description of the GNU GPL, Moolenaar discusses his rationale for why he created the Vim license. Two points of concern for Moolenaar are proprietorship and commercial distribution; problems he noted that came into play with a derivative of Elvis, another vi clone.
One of these points is indeed incompatible with free software—proprietorship. Extending free software to produce a proprietary derivative is never acceptable to the free software movement for the same reason producing proprietary software outright is unacceptable—proprietary software robs us of the opportunity to help ourselves and our neighbors. Proprietary software does not grant us all the freedoms of free or even semi-free software.
Moolenaar's other problem with the Elvis license is that it allows commercial distribution of someone else's work. This is not a problem for the free software movement. Selling free software (including free software you did not write) can be okay. In fact the FSF encourages us to charge as much money as we can for redistributing free software. The 'free' in free software does not refer to price.
Moolenaar's motivations are particularly selfish. As he said in the license, source code to improvements of a distributed Vim derivative must be made available to the maintainer (Bram Moolenaar). The Vim license doesn't compel distributing this source code to the community nor to the person running the improved Vim. With the Vim license, under normal circumstances, the Vim maintainer is the only required recipient of the source code to distributed improvements. Moolenaar alone decides which improvements are worthy to be released to the community. Moolenaar sets himself up as the gatekeeper for improvements. Those wishing to make a proprietary version of Vim are allowed to do so, they merely need to coordinate their effort with Bram Moolenaar. This is considerably different from how the GNU GPL works.
Moolenaar says he didn't choose the GNU GPL because
[I]t restricts the changes you can make. That is, you can make changes, but when you distribute the modified software, you must make the modified sources available to everybody. Thus people are not free to keep these changes to themselves.
It is true that when you distribute modified GPL-covered software you must make changes available, but that does not mean you are prohibited from making private derivatives. If you want to keep your changes to yourself, simply don't distribute your derivative. The restrictions on what you may include in distributed GPL-covered work are there to preserve the software freedom of those outside the distributor's organization who receive a copy of the software.
The GNU GPL prohibits making proprietary derivatives, the GPL does not prohibit private derivatives. You can not modify GPL-covered code and distribute it minus the freedoms you had when you obtained a copy of the software. The GPL's strong copyleft prevents you from adding restrictions to the software's license when you redistribute or modify the software. It is an advantage of the GNU GPL that you don't have to go through a gatekeeper to get improved copies of the software.
Later in his essay, Moolenaar says he doesn't think all
software should be free and
open-source
. It is surprising to
read this admission in a magazine dedicated to free software
because it seems to be deeply incompatible with the free
software movement in two ways:
Moolenaar raises a common question about how people would make a living from free software:
All people working on free software that I know somehow make a living out of commercial software, either with a full-time job or by studying to get a job later. Without commercial software, how would these people make a living?
Moolenaar confuses the terms 'commercial' and 'proprietary'; the free software movement is not an anti-commercial movement. I would answer his question in two ways:
Although the context of the thread was different, Russ Allbery made an excellent point on Usenet in <ylvgdvv06y.fsf@windlord.stanford.edu> that applies here too. Allbery argued that companies have been going out of business since there have been businesses; this is normal in a free market economy. It is the responsibility of each business to invent a viable plan and adjust that plan to the market in which they wish to do business. That means adjusting to the increased presence of free software with a strong copyleft—software that can't be embraced and extended away from the community. Businesses which are unable to compete in a free software world are going to go under. This is normal.
Contrary to Moolenaar's claim that [m]ost commercial[sic]
software cannot be open-source, because a company would lose
its advantage over competitors
, proprietary software loses its
advantage just by being proprietary. Free software offers
something proprietary software can never offer—freedom.
And built on that freedom comes an entire community of support,
the depth of which could never be built around proprietary
software because the only people who really know how the
software works and have the opportunity to improve it are those
who have a hand in developing it.
Moolenaar also notes:
Since software patents and copyrights are a very weak protection, keeping the source code a secret is still the best choice in most situations. Unfortunately, this means that you are not able to learn from how commercial software was implemented, or add a feature or fix a bug in the program you bought. A solution can be making most of the program open-source, and keeping a small but essential part a secret.
Software patents are wrong not because of their weak
protection
but because they stifle the growth of the entire
software industry to benefit one person or organization. [ed. note:
Software patents are neither protection nor are they weak. Software
patents cut off an entire idea from development thus hobbling everyone
for the benefit of a few. Furthermore the USPTO is incompetant in
determining what software is non-obvious, they also hand out multiple
patents for the same idea. I should have made these points more clear
in the original lest anyone come away thinking I agree with Moolenaar's
view on software patents. Read more
about these points or listen
and read about them. August 12, 2002] Software patents simply
shouldn't exist. This too is another area where Moolenaar's opinion
differs from that of the free software movement. Moolenaar's opinion
works against free software development. Keeping
a small
but essential part
of the source code a secret is no
solution either. Nobody can tell where the bug, security threat, or
privacy violation will be in a piece of software. What if the problem
lies in the small but essential
(and unfortunately withheld) part?
You need the fundamental freedoms of free software for all
of your software.
I obviously don't think Moolenaar's views about the ethics of free software are compatible with the free software movement, and he has misstated the effect of the GNU GPL on private derivatives. So naturally I wonder why his views were included in Free Software Magazine.
J.B. Nicholson-Owens consults using free software, writes free software and free documentation, and cares for cats.
Copyright © 2002 J.B. Nicholson-Owens. Verbatim copying and distribution is permitted in any medium provided this notice is preserved.