Software Freedom in a Post Open Source World
(Or: How I Learned to Stop Worrying and Love Software Freedom)
Update: 4 May 2020. I wrote this post as prep for a talk of the same name at CopyleftCon 2020. The video was posted recently (25 mins + 5 mins of Q&A). Slides are on slideshare.
Update: 3 Feb 2020. I have just been rightly called out by Coraline Ada Ehmke for not doing my homework on an Ethical Software Definition in her excellent CopyleftConf talk “The Rising Ethical Storm in Open Source”. Fixed. Thank you. Thank you for the excellent talk. Thank you for your bold work. I’m looking forward to the video being posted.
Engineers have collaborated on software since they’ve written software all the way back through the start of the 1950s. Copyright was applied to computer software in 1980. Engineers that collaborated on software suddenly needed to find ways to continue collaborating in the face of copyright requirements.
Software freedom was one such early experiment in the articulation of the sharing ethic. The freedoms remain[1]:
- 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.
Other experiments in copyright sharing included the academic licenses from MIT and UC Berkeley in their respective project communities, the Artistic License in the Perl world, and the BSD ‘clones’. In each of these situations, the early community of collaborators were choosing licenses as statements of how they wanted their community to share. In all cases these were outbound statements — we the participants in this project community share our work under copyright with you in this way. There is no requirement to contribute back ever, even in the clear ethical statements espoused around software freedom through the GNU Public License which only required that you publish.
Eric von Hippel’s research demonstrates why innovators share and they share broadly. Indeed, some of the early research involving sailboard modifiers showed that sailboard manufacturers would often stand back and allow the hackers to find the mods that worked and were most popular, rather than commit early to manufacturing bad ideas. The creators of the mods were happy. They had neither the desire nor ability to start companies but were happy to be the teachers and consultants on the cutting edge. It was all about outbound sharing.
Software collaborations under copyright weren’t simply rogue hobbyists and amateurs. The Project Athena work at MIT leading to the X11 Windowing System and Kerberos (and the X11 or MIT license) involved DEC, HP, and IBM.
After 18 years of experimentation, the open source definition was articulated onto the world of collaborating engineers and their project licenses. With its roots in the Debian Free Software Guidelines, the OSD was articulated as attributes that collaborative licenses shall support. The OSD came with a process of transparent debate on an open email list where anyone could participate to judge collectively whether or not a license met the definition. To this day, the breadth and depth of experience of the participants far outweigh any single perspective trying to argue for some competitive edge in the definition.
The Freedoms were presented as an ethical mandate. Indeed, in all Stallman’s writings, he has used the ethics of intent as the singular knife-edge difference between open source and software freedom. In Stallman’s writings, open source is about engineers collaborating to build good software but software freedom is an ethical requirement for a good society. [2]
I remember when Tim O’Reilly argued that Freedom Zero was a creator’s right to choose their licensing terms for their work, attempting to set a broader societal context for software and the freedoms. The Freedoms were quickly re-based to zero to narrow the context once again to a discussion of software and the freedoms defining Free Software. Software freedom as espoused by the Free Software Foundation is an ethical mandate but it is an ethical mandate narrowly positioned on software because to do more would weaken the definition. The leap of faith that was copyleft was about software.
The first real crisis in licensing since the publication of the OSD was the proliferation problem. Companies in the First Corporate Wave embracing open source wanted to loudly demonstrate their open source credentials with their own vanity open source licenses. (More likely it was actually a result of their lawyers conservatively believing they were maintaining good corporate governance and control through the creation of their own OSD compliant license.) The result was a cacophony of licenses and terms that didn’t play well together for engineers actually trying to collaborate. Saner minds prevailed and the regular creation of licenses that were similar-but-different-in-some-nuanced-consequential-way stopped.
The industry continues to move on relentlessly. Over the past 25 years, software has become democratized and we are now drowning in software, most of it mediocre, duplicative, and bad. (There were 4M GitHub repos in 2012, 20M in 2016, 95M in 2018, and 140M in 2019. Most don’t have licenses, let alone OSI approved licenses. Software Transmitted Diseases are on the rise.) We are well into the next wave of corporate engagement with Big Tech embracing collaborative development as a [possibly competitive] practice while not quite understanding how to embrace co-creation in spirit. Wild games of Investor Poker are being played with investors betting on startups they believe will offer the Next Big Exit in the Next Big Wave of Infrastructure driven by open source collaboration.
This is leading to new stresses on the open source definition. The brunt of the argument seems to come from a few directions:
- Startups (mistakenly thinking open source is a business model) are worried that others (generally cloud service providers) are ‘stealing their work.’
- Small projects where the maintainer (typically singular) is drowning in demands on their time believe being better compensated is the best way out. Companies should pay for what they use.
- Some developers working on open source licensed projects are concerned that people they believe are bad actors in society are using their work towards bad ends.
Solutions follow a pattern. New licenses are proposed. When it is observed that the new license breaks with the OSD, the OSD is called into question because it must be dated. The OSD is twenty years old and refers to sharing that began twenty years earlier still when copyright was applied to computer software. The argument is extended to claim the OSD simply can’t be relevant to today’s modern technological advances. The surface area is broadened to include data, and sometimes to data privacy and sovereignty. Then, as data sovereignty and privacy are clearly ethics-based, one can extend the entire ethical discussion into Biblical metaphors of Goliath stealing from David, or challenging if it’s okay to burn the planet down with one’s software. Clearly, the open source definition is failing society, and indeed, I’ve heard folks suggest recently that software freedom may look a bit worn as well.
I have always had a hard time with the software freedom ethical mandate. I was running the engineering team in a startup in the 1990s using all manner of interesting technology off of the Internet covered by a myriad of licenses (some of which still aren’t OSI approved). We honoured all the licenses. We contributed back when appropriate. We published when appropriate. We were very tuned to the costs and risks of living on brittle forks. We believed in building and sharing good software. As engineers that understood the build versus buy equation, we had bought (i.e. licensed) in some cases closed software that simply could not be published. We also understood the Build vs Buy vs Borrow + Share economics of collaborative development. We were tired of Stallman’s ethical absolutism. The OSD was a breath of fresh air. We just wanted to build good software and solve customer problems.
As we’re all prone to claim, ‘open source has won.’ The Linux Foundation published a report[3] of the billions of dollars of software value under their umbrella. The Apache Software Foundation quickly reminded folks of the even larger amount of software value under their umbrella and continues so to do in their annual reports[4]. I have to believe the Eclipse Foundation can make similar claims, and then we can step into the enormous software value hiding in the Drupal, Perl/CPAN, Python, Ruby, and other language communities.
But as we sit here now, 20 years after the OSD was created, it’s under attack as not being modern enough, ethical enough, technically current enough, or business-friendly enough.
I realized as I prepared for my presentation at CopyleftCon 2020, digging back into our history, and the writings and observations, that the declaration of software freedom holds the key to the discussion. Copyleft was a leap of faith, and that leap of faith was narrowly positioned on software. People that cared, courageously created the Free Software Foundation, defending the Freedoms, and carrying that message forward. So too with the evolution of the open source definition that was to come. And people that cared, put their time and effort where their mouth was, and stood up the Open Source Initiative, and have spent a long time working to maintain the message, and support the continued debates around the OSD focused on software.
I am happy for people to challenge the ideas that define our software collaborations and culture of outbound sharing. But I want them to be bold. If you want to define a new movement then do so. Have the courage to create, define, and defend the Ethical Software Definition (ESD). [Please see the note at the top of this posted essay. Thanks, Coraline Ada Ehmke, for the correction and pointer.] Judge licenses like the Hippocratic License against the new ESD. Create the Carbon Neutral License. Or the Non-military Proliferation License. Test them against the ESD. If you don’t like the current work in open data licenses, then start the Free Data Foundation. Espouse the freedoms that define Free Data (which is obviously free as in speech, not free as in beer).
I want that same boldness and courage shown in the creation of the Free Software Foundation and the declaration of software freedom to be shown by all the companies that are concerned with how the software they ‘freely publish’ is being used by people not paying for it. You could create a software business association that would stamp out such unfair practices. You might boldly create a business friendlier licensing regime that wraps itself around the existing license attributes embodied in the OSD. But while you boldly [re-]create the Shared Source Initiative, ask yourself why Microsoft quietly walked away from it, and gradually learned to engage in software collaboration under licenses that are OSI approved, and ultimately free software licenses.
The articulation of software freedom — positioned tightly on the software — allowing for a restatement as license attributes in the open source definition has allowed developers first to share and then to collaborate since copyright was applied to software. This broad collection of collaborating communities has enabled billions of dollars in software value co-creation. I look forward to the next wave of value co-creation in software in our industry. I would encourage those that want to change the status quo to go forth — be bold. But also, be creative. Be new. Don’t break something that is clearly working for the rest of us in our software collaborative communities.
References:
[1] “What is free software?” https://www.gnu.org/philosophy/free-sw.en.html
[2] “Why Open Source misses the point of Free Software” https://www.gnu.org/philosophy/open-source-misses-the-point.html
[3] A $5 Billion Value: Estimating the Total Development Cost of Linux Foundation’s Collaborative Projects, http://www.static.linuxfound.org/sites/main/files/lfpub_cp_cost_estimate2015.pdf
[4] “The Apache® Software Foundation Celebrates 20 Years of Community-led Development ‘The Apache Way’” https://blogs.apache.org/foundation/entry/the-apache-software-foundation-celebrates1