I hate the term “open source”
It doesn’t accurately reflect how people are building today anymore.
The term “open source” has become so broad as to become meaningless. I would guess at least half of my conversations with people involve the question “Wait…so what IS open source, actually?”, or realizing about 10 minutes in that we’re talking about completely different things.
Officially, open source is defined by a list of ten criteria, which you can read about here. (If you’re wondering who gave them the authority to define open source, the Open Source Initiative grew out of the 1998 meeting that created the term “open source” in the first place.)
Were you aware there was an official definition? I didn’t think so.
Licenses are not a useful way to define modern open source anymore. They matter in as much as it matters that most startups are set up as Delaware C Corps; you want to check the compliance boxes, but the fine print is best left up to legal nerds and lawyers.
It’s more than just semantics. Modern open source has a different set of values than open source of the late 1990s and early 2000s.
- Early open source was about the idea that code is ownerless, enforceable by license, which theoretically leads to resilient software.
- Modern open source is about 1) building and 2) collaborating in public.
The conversation has shifted from protecting the rights of a user to adopt the software as they wish (now the norm) to protecting the rights of the author or community that stewards the code (still TBD).
Much of this change has been brought about by GitHub, which, as the most popular platform for open source development, effectively redefined norms for an entire generation today. (Ask them what a “fork” is.)
Technically, most projects on GitHub don’t even meet the official definition of open source (since over 80% don’t have a license). That means when we say GitHub is where people “open source” their work, we are implicitly upholding a definition that looks more like GitHub’s Terms of Service.
It might be okay to simply have different versions, if it didn’t restrict how people actually build and collaborate today. I get trapped in quite a few debates with people who say XYZ is not open source because it violates some aspect of licenses or historical norms.
It also means that creative efforts to protect the rights of authors who develop in public, like Fair Source, must qualify their work by saying “Not open source” and that Mike Perham of Sidekiq is technically incorrect when he says “Open source != Free Software”, even though he said exactly what was on many people’s minds.
And then you’ve got plenty of people “open sourcing” things that have nothing to do with software or the official definition of open source. All they mean is that they made their work public for others to view and use.
It’s not crazy to think that we are long overdue for a new term. Open source itself grew out of a need to distinguish a more pragmatic philosophy from its political predecessor, free software. Maybe this is that time again.
So what do we call it instead? I’ve been testing out the term “public software”. As in, some software is private (access is limited to an approved group of people), and others are public (access is open to anybody with an Internet connection).
Open source is still a form of public software, but so are other, broader applications and experiments. Public software is also just easier for a layperson to grok. (I cringe every time I see people’s eyes glaze over when I say the word “open source”.)
I’d love to hear your suggestions. Whatever we decide on, can we find a better word to use?
Followup to this post (5/31/16)
I wrote one followup to this post already. I didn’t want to beat a dead horse by writing yet another, but I do want to share some conclusions I’ve drawn, based on the excellent discussion that came from both posts.
I originally wrote these as private reflections, but figured I might as well put them out there.
Here’s where I’ve landed:
- Licensing and legal side is important to preserve because it enables us to do everything we currently take for granted with open source software. Restricting access or use of software, or changing the legal definition at all, is dangerous for this reason.
- The desire we’ve seen to push the boundaries of these definitions comes from a very real need to formalize roles and dedicate time to socially valuable projects. A government worker might drive a public project (ex. get a public park built in a city) but that worker is still salaried and can afford to spend his/her time on it. Just because the output is a public resource doesn’t mean a person can’t be compensated for public service work, nor that they can’t feel some ownership over the project’s process.
- I don’t want the culture of open source to be organized around a legal definition. I want to zoom out and look at the broader ecosystem (of which the legal definition is one, essential node). A friendlier, more accessible term would make it easier to discuss topics like sustainability, collaboration, and people involved. Those aspects don’t need to be included in the official definition, but they still matter.
- I still like the term “public software” because it allows more people (including those new to, or unfamiliar with, open source, even if they use or benefit from it) to quickly understand what open source software is and how it should be protected. It doesn’t change the legal definition at all; if anything, it enforces it better, because we would want to define and protect public software exactly as we would any other public resource.
- More people should be participating in this conversation than currently are, and the fact that “open source” is not intuitive and carries serious “insider” cultural baggage is a problem. I’d like to see a term that is more inclusive and naturally ties open source software to other public resource models, legitimizing it as a resource that *everybody* in modern society benefits from and should support.