What Makes Free Software Valuable?
The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom. They assert:
Free software means that the users have the freedom to run, edit, contribute to, and share the software. Thus, free software is a matter of liberty, not price. The FSF have been defending the rights of all software users for the past 35 years...
To use free software is to make a political and ethical choice asserting the right to learn, and share what we learn with others. Free software has become the foundation of a learning society where we share our knowledge in a way that others can build upon and enjoy.
My concern is not that "open source hates DRM" or whatever the internet meme of the day is; it's that there is a substantive difference between free software and software which denies user freedoms:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
In practice, how can we come to understand what these substantive differences are and why they matter? (Open source software includes projects where copyrighted source code is available but may not be free to be modified or redistributed; I contend, as Stallman does, that the term "open source" confuses and conflates our ability to understand the concept of free software.)
Digital Rights Management
DRM software runs on popular open source applications & operating systems, in order to have access to media restricted by license agreements. One might recall the AACS encryption key controversy of April 2007... many users wanted to read encrypted media using unlicensed players, yet sharing of instructions and information was met with DMCA take-down notices.
These days it is possible to watch movies (both physical discs and online streaming media) using licensed commercial or open source software on Windows, OS X, GNU/Linux, and other open source platforms. Still, commercial or open source software does not grant end users the freedom to easily modify said software, for example to copy or backup purchased media. Software which denies users the freedoms to use, study, redistribute, and modify it is not free software, for example:
- Microsoft Adds 'Big Boobs' to Linux Kernel | WIRED (Microsoft contributed code to the Linux kernel; good luck understanding and modifying it!)
- GitHub merges 'useless garbage' says Linus Torvalds as new NTFS support added to Linux kernel 5.15 • The Register (Linus continues to be unhappy about negotiations The Linux Foundation makes with its members.)
- Fat Fritz 2 is a rip-off | Blog • lichess.org (chess players lack freedoms noted above with what was originally free software; personally, I don't oppose resale of free software as long as users have the freedoms granted by the original authors under the original free software license)
See Stallman's disambiguation between open source and free software since corporate interests love to conflate the two, to the detriment of the free software community.
Benefits of Free Software
We could argue and complain all day about how to understand user freedoms and question the wisdom of giving users freedom (thereby reducing corporate interest in things they have less control over). What benefits could there possibly be to corporations and to enthusiasts in denying themselves the ability to restrict user freedoms?
Corporations occasionally profit from producing or subsidizing free software, for example:
- OpenSSL (patches to fix Heartbleed could be quickly deployed)
- Docker: Automated and Consistent Software Deployments (infoq.com) (Docker's business model shifted from sales to consultancy, saving the business)
- distractionware » VVVVVV’s source code is now public, 10 year anniversary jam happening now! (Terry Cavanaugh released source code to his popular arcade-style game and received hundreds of code patches - see the release notes!)
- OpenJDK (java.net) (Sun Microsystems licensed their reference implementation code to encourage universal adoption of Java, later making OpenJDK feasible.)
Free software is often developed by an enthusiastic community, which helps developers learn from and help each other. Here are several active collaborations:
- signalapp/libsignal-protocol-java: Signal Protocol library for Java/Android
- ianfab/Fairy-Stockfish: chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more
- Leela Chess Zero (lczero.org)
- python-chess: a chess library for Python
- domino14/liwords: A site that allows people to play a crossword board game against each other
- JohnChernoff/ClueChess: A strange yet somewhat addictive mix of Sudoku, Minesweeper, and Chess
- chrisbutner/ChessCoach: Neural network-based chess engine capable of natural language commentary
- yaneurao/YaneuraOu: YaneuraOu is the World's Strongest Shogi engine(AI player) , WCSC29 1st winner , educational and USI compliant engine.
What makes free software collaborations successful?
- Clarity of communication and purpose (for example Unix philosophy - Wikipedia)
- Ease of collaboration (sharing source code, dependency libraries & data, automated tests)
- Accepting, organizing, and prioritizing user feedback
Photo credit Sincerely Media
P.S. Sorry this article devolved into an information dump; it's such a broad topic yet I wanted to write something about it. Perhaps in the future I can focus on projects which mean the most to me, or something like that. I selected this "book" image for this blog entry because people have opinions about the value of books, and likewise they should have opinions about the value of software.