P. J. McDermott

Software and hardware hacker and advocate for software and cultural freedom.

Commercial Free Software: Not an Oxymoron

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. 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.

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