summaryrefslogtreecommitdiffstats
path: root/essays/commercial-free-software.mdwn
blob: c71e4ab89fcdecef43556b9e616bf6ae69a39c63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
<!--#set var="title" value="Commercial Free Software: Not an Oxymoron" -->
<!--#include virtual="/includes/header.html" -->

TODO: Clean up some wording, consider removing reference to Sencha Inc., maybe
mention Qt "open governance", mention transferable skills under "Development",
discuss application stores under "Distribution", and note that most money in
proprietary software comes from support rather than from licenses.

Many people believe that money can't be made in free (as in freedom) software.
They believe that "free" means "noncommercial", and they might compare
"open-source" software and "commercial" software as if the terms were opposite
and mutually exclusive. This is in fact a logical fallacy; specifically it is a
[false exclusionary disjunct][fed].  Software can be both free and commercial.
If a software copyright license allowed only noncommercial dealing, it would be
considered neither free nor open source.

Free software is in fact used commercially, and successful business models
around free software exist (and have existed longer than those around
proprietary software have). I've generalized the ways in which people make money
with free software into three broad categories: development, support, and
distribution.

[fed]: http://en.wikipedia.org/wiki/Affirming_a_disjunct

Development
===========

Modern economic models around free software closely resemble early economic
models around software. Keep in mind that software freedom is as old as software
itself. The "proprietarization", as I call it, of software began around the
1970s, apparently pioneered by International Business Machines (IBM). [1]  It
was furthered by companies like "Micro-Soft" and people like  Bill Gates, who in
1976 published an "Open Letter to Hobbyists" that criticized people for sharing
software without paying for it. [2]  Before that time, software was usually
distributed with source code (some universities even had policies of rejecting
software that wasn't). Software was often distributed either at no cost or at
the cost of making and shipping copies (at the time, on tapes). [3]  Programmers
were paid for the time they spent writing software, not for copies of the
software itself (or really, licenses to use the software). [4]  We see the same
thing happening today. Programmers are being paid to work on software, and the
software is distributed freely (that is, without unfair restrictions) and often
even at no charge.

I cite four major examples of this phenomenon of paid development of free
software. The first is Linux, a powerful and reliable high-performance kernel
found in everything from televisions and ATMs to large servers and
supercomputers (in fact, in over 90% of the world's 500 fastest supercomputers
[5]).  As of 2010, over 70% of work done on Linux is done by paid programmers.
[6]  At least 659 companies have supported the development of Linux. [7]
Compare that to the Windows NT kernel of Microsoft Windows, the development of
which is supported by only one company (the only one legally allowed to do so).
Additionally, AMD's recent hiring of two more graphics driver developers shows
that if you can improve a company's freely-licensed software, they might hire
you to do so officially. [8]

The next example is Qt, a flexible cross-platform application framework popular
in desktop, server, and embedded applications. [9]  Qt is free software,
licensed under the GNU Lesser General Public License (LGPL) version 2.1. [10]
Most of Qt's developers are employed by Qt Development Frameworks, a subsidiary
of Nokia Corporation since 2008. [11]

My third example is GNAT, a compiler for the Ada programming language that is
now a part of the GNU Compiler Collection (GCC).  It was originally developed by
the New York University under a $3-million contract awarded by the United States
Air Force in 1992.  Under the requirements of the contract, copyright on the
software was assigned to the Free Software Foundation and the software was
released under the GNU General Public License (GPL). [12]

Finally, I cite the GNU Project, a project announced in 1983 with the
now-successful goal of creating a complete free operating system.  The Free
Software Foundation, Inc., a non-profit organization founded by Dr. Richard
Stallman in 1985 to support the development of free software, hired programmers
to work on parts of the GNU system.  GNU Bash (a popular and user-friendly
command shell now used in systems like GNU/Linux and Apple Mac OS X), GLIBC (a
C library), and GNU tar (an archiving program) were all initially developed by
paid programmers. [13]  Yet all are free software, and all are distributed often
at no charge.

But you may think this doesn't make any sense.  Why do companies pay for the
development of software for which few people pay?  They must be losing lots of
money.  Actually, they have a financial interest in having high-quality software
available, even if few or no people actually pay for it (but remember that free
software is a matter of freedom, not price). Many companies sell support for
free software; we'll see more about this later.  Many companies sell hardware
with which free software is run (servers, wireless network adapters, digital
cameras, mobile phones, televisions, cars, *commercial airplanes*, etc.).  Many
companies see free software as a way to save time and money and not have to
reinvent the wheel. If you want something that serves a similar but not
identical function as a proprietary program does, you have to write a new
program from scratch; a free program, on the other hand, can simply be adapted
to a new purpose. I suspect this is part of AMD's motivation in supporting
Coreboot, a free bootloader that is faster and more flexible than proprietary
BIOSes, in their server and embedded products. [14][15][16]

Finally, most software is custom software, software that is written for a single
person or company and not meant to be released. This software is technically
commercial and often free in a trivial sense. If there's one user, and that user
has the rights to the software, then the software is free for all its users.
[13][17]

Support
=======

With proprietary software, only the copyright holder is allowed to understand
it, and only they are allowed to support it. Support of proprietary software is
a *monopoly*.  (And as it turns out, this allows something like extortion.  A
phone call to Microsoft about Windows XP costs $59; an e-mail costs $49.  And
soon they'll discontinue support for Windows XP completely. [18]  You have to
pay to report a bug, then pay for an "upgrade" to see if they've fixed it. [13]) With free software, everyone is allowed to understand it and support it.
Support of free software is a *free market*. [13]  There is competition in free
software support.  Companies and individuals must please their clients, because
their clients are free to go elsewhere for support.

Individuals make money from making changes to free programs. They can support
their own programs (in fact, Richard Stallman made a lot of money doing this,
more than he ever did before [13]) or anyone else's free programs.  Again, like
the earliest programmers, these individuals are paid for doing work, not for the
results of their work. The results of their work are usually free software that
does what their clients want it to do.

Individuals and companies sell consulting services and support contracts for
free software. The first company to officially do so was Cygnus Solutions,
founded in 1989. Cygnus maintained many parts of the GNU development toolchain
and offered commercial support for GNU software.  Between 1999 and 2000, Cygnus
merged with Red Hat, Inc. [19][20] Red Hat sells support for GNU/Linux, and its
revenue is expected to reach $1 billion this year, an impressive record.
[21][22]  Canonical Ltd., founded in 2004, maintains and supports a number of
free software projects, including the Ubuntu GNU/Linux operating system. [23]
Nokia Corporation used to provide official support for the Qt framework, but
earlier this year it sold this support business to Digia Plc. [24]  Digia is one
of 27 "Qt Partners", companies that work with Nokia to provide commercial
support for Qt. [25]  AdaCore is a company run by the original developers of
GNAT, the aforementioned Ada compiler commissioned by the U.S. Air Force.
AdaCore has been officially supporting GNAT since 1994. [12][26]  Sencha Inc.
also offers support for its own free software. [27]  The Debian project has a
list of 824 consultants in 63 countries who support the use of Debian GNU
operating systems. [28]  The Free Software Foundation lists 86 individuals and
companies offering support services in free software. [29]  Clearly, there is a
successful business model here -- one based in a free market.

Distribution
============

Additionally, some people sell free software. That is, they charge a fee for
distribution, even of other people's work.  How is this morally acceptable?  A
person can profit from someone else's hard work?  Well, it may go against the
traditional free software economic model of paying for time spent on work
instead of for copies of the results of that work.  But it's not inherently
unethical or even illegal.  In fact, software licenses must allow this practice
in order to be considered free licenses. [30]  In some cases, there is a cost
in making and distributing copies of software (e.g. the cost of burning and
shipping CDs).  Or people may just want to earn some money for performing a
moral act (sharing freedom) and maybe even contribute some of the profit back to
the developers. [31]  In the 1980s, Richard Stallman himself charged a fee for
copies of GNU Emacs (a text editor he wrote) that he shipped on tape.  In doing
so, he made about $1300 per month, a respectable income from something that's
"free"! [13]

Conclusion
==========

In short, programmers have always had ways to earn money with free software,
even before proprietary software existed.  Most programmers who write free
software are in fact paid for their work, in a variety of ways.  The difference
in free and proprietary software economic models is that copyright holders (not
necessarily even the developers) of proprietary software profit from restricting
users, while free software developers make money in more ethical ways.  Free
software programmers are usually paid for the time spent writing software, not
for copies of the software (or more accurately, the right to use the software).

References:
===========

1.  "Proprietary Software". <span class="cite-title">Wikipedia</span>.  July
    10, 2011.  &lt;<http://en.wikipedia.org/wiki/Proprietary_software>&gt;.
2.  "Open Letter to Hobbyists".  <span class="cite-title">Wikipedia</span>.
    July 6, 2011.
    &lt;<http://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists>&gt;.
3.  Williams, Sam.  "For Want of a Printer".  <span class="cite-title">Free as
    in Freedom</span>.  2002: O'Reilly.
    &lt;<http://oreilly.com/openbook/freedom/ch01.html>&gt;.
4.  <span class="cite-title">The Codebreakers</span>.  2006: Asia Pacific
    Development Information Programme.  Aired on BBC World.
    &lt;<http://www.apdip.net/news/fossdoc>&gt;,
    &lt;<http://www.archive.org/details/The-Codebreakers>&gt;.
5.  "Operating system Family share for 11/2010".
    <span class="cite-title">Top500 Supercomputing Sites</span>.  Top500.Org.
    &lt;<http://www.top500.org/stats/list/36/osfam>&gt;.
6.  Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda.  "Who is
    Sponsoring the Work".  <span class="cite-title">Linux Kernel Development:
    How Fast it is Going, Who is Doing It, What They are Doing, and Who is
    Sponsoring It</span>.  2010: The Linux Foundation.
    &lt;<http://www.linuxfoundation.org/docs/lf_linux_kernel_development_2010.pdf>&gt;.
    12-13.
7.  Kroah-Hartman, Greg; Corbet, Jonathan; and McPherson, Amanda. "Who is
    Doing the Work".  <span class="cite-title">Linux Kernel Development: How
    Fast it is Going, Who is Doing It, What They are Doing, and Who is
    Sponsoring It</span>.  2010: The Linux Foundation.
    &lt;<http://www.linuxfoundation.org/docs/lf_linux_kernel_development_2010.pdf>&gt;.
    10.
8.  Larabel, Michael.  "AMD's New Open-Source Employees".
    <span class="cite-title">Phoronix</span>. July 5, 2011.
    &lt;<http://www.phoronix.com/scan.php?page=news_item&amp;px=OTYzOA>&gt;.
9.  "Qt (framework)".  <span class="cite-title">Wikipedia</span>.  July
    13, 2011.  &lt;<http://en.wikipedia.org/wiki/Qt_%28framework%29>&gt;.
10. "Qt Licensing".  Nokia Corporation.
    &lt;<http://qt.nokia.com/products/licensing>&gt;.
11. "Qt Development Frameworks".  <span class="cite-title">Wikipedia</span>.
    July 8, 2011.
    &lt;<http://en.wikipedia.org/wiki/Qt_Development_Frameworks>&gt;.
12. "GNAT".  <span class="cite-title">Wikipedia</span>.  May 9, 2011.
    &lt;<http://en.wikipedia.org/wiki/GNAT>&gt;.
13. Stallman, Richard. "Free Software: Freedom and Cooperation".
    <span class="cite-title">GNU Project</span>.  Free Software Foundation, Inc.
    July 13, 2011.
    &lt;<http://www.gnu.org/events/rms-nyu-2001-transcript.html>&gt;.
14. "Coreboot and Open Source Development". <span class="cite-title">Business
    Blog</span>. Advanced Micro Devices, Inc.  February 28, 2011.
    &lt;<http://blogs.amd.com/work/2011/02/28/amd-coreboot/>&gt;.
15. "AMD to use Coreboot in Llano, other upcoming parts".  Fudzilla. May 10,
    2011.
    &lt;<http://www.fudzilla.com/home/item/22677-amd-to-use-coreboot-in-llano-other-upcoming-parts>&gt;.
16. "Benefits".  <span class="cite-title">coreboot</span>.  January 15, 2008.
    &lt;<http://www.coreboot.org/Benefits>&gt;.
17. "Categories of Free and Nonfree Software".  <span class="cite-title">GNU
    Project</span>. Free Software Foundation, Inc.  July 13, 2011.
    &lt;<http://www.gnu.org/philosophy/categories.html#PrivateSoftware>&gt;.
18. "Support Options".  <span class="cite-title">Microsoft Support</span>.
    Microsoft Corporation. (No portable URI. Go to 
    &lt;<https://support.microsoft.com/oas/default.aspx?gprid=1173&amp;st=1&amp;wfxredirect=1&amp;sd=gn>&gt;,
    click "Microsoft Windows XP Home Edition", select "Other", and click
    "Continue".)
19. "Cygnus Solutions".  <span class="cite-title">Wikipedia</span>.  June
    8, 2011.  &lt;<http://en.wikipedia.org/wiki/Cygnus_Solutions>&gt;.
20. "Marketing Cygnus Support -- Free Software history".  September 27, 2006.
    &lt;<http://www.toad.com/gnu/cygnus/>&gt;.
21. Woods, Dan.  "Red Hat At $1 Billion".  <span class="cite-title">CIO
    Central</span>.  Forbes.com LLC.  November 30, 2010.
    &lt;<http://blogs.forbes.com/ciocentral/2010/11/30/red-hat-at-1-billion/>&gt;.
22. Dignan, Larry.  "Red Hat: Nearing $1 billion in revenue; Not bad for free
    software".  <span class="cite-title">ZDNet</span>.  CBS Interactive.  March
    23, 2011. 
    &lt;<http://www.zdnet.com/blog/btl/red-hat-nearing-1-billion-in-revenue-not-bad-for-free-software/46445>&gt;.
23. "Canonical Ltd.".  <span class="cite-title">Wikipedia</span>.  June
    12, 2011.  &lt;<http://en.wikipedia.org/wiki/Canonical_Ltd.>&gt;.
24. Nystrom, Sebastian.  "Nokia and Digia working together to grow the Qt
    community".  <span class="cite-title">The Qt Blog</span>.  Nokia
    Corporation.  March 7, 2011.
    &lt;<http://blog.qt.nokia.com/2011/03/07/nokia-and-digia-working-together/>&gt;.
25. "Partner Locator".  Nokia Corporation.
    &lt;<http://qt.nokia.com/partners/partner-locator>&gt;.
26. "AdaCore".  <span class="cite-title">Wikipedia</span>.  May 20, 2011.
    &lt;<http://en.wikipedia.org/wiki/AdaCore>&gt;.
27. "Company".  <span class="cite-title">Sencha</span>.  Sencha Inc.
    &lt;<http://www.sencha.com/company/>&gt;.
28. "Consultants".  Debian Project. July 11, 2011.
    &lt;<http://www.debian.org/consultants/>&gt;.
29. Sullivan, John.  "Service Directory".  Free Software Foundation, Inc.  April
    14, 2011.  &lt;<http://www.fsf.org/resources/service/>&gt;.
30. "The Free Software Definition".  <span class="cite-title">GNU
    Project</span>.  Free Software Foundation, Inc.  July 13, 2011.
    &lt;<http://www.gnu.org/philosophy/free-sw.html>&gt;.
31. "Selling Free Software".  <span class="cite-title">GNU Project</span>.  Free
    Software Foundation, Inc.  July 13, 2011.
    &lt;<http://www.gnu.org/philosophy/selling.html>&gt;.

<!--#include virtual="/includes/footer.html" -->