On “free” and “open-source” software
How language makes the people, and people make the language
Did you know that computers existed way before the mid 20th century? The first record of a computer dates back as early as 1613, and there is evidence that computers have been known and routinely utilised throughout the following centuries. Their probably most important field of application was for carrying out calculations in the context of astronomic research. (At times, a controversial and even somewhat delicate undertaking, however.)
Even though the computers of back then weren’t nearly as powerful as the ones we have today, some of them had remarkable capabilities. For example, in the late 19th century, it was a common technique to split up a complex task and have it processed by multiple computers in parallel. One computer named “Henrietta” was even able to plot mathematical diagrams on paper!
Just to clear that up for the records: “Henrietta” wasn’t a machine, of course. Henrietta Swan Leavitt, born in 1868 in Lancaster (Massachusetts, USA), was a famous American astronomer who worked at the Harvard College Observatory. Her job title was: “computer” – she literally computed for a living.
Until well into the 20th century, a “computer” was commonly understood to be a person whose job it was to perform mathematical computations. That interpretation only gradually started to change with the rise and development of computing machines. The machines took over more and more, and eventually, they rendered the human computer obsolete – the notion of a “computer” to mean a human largely fell into oblivion.
The transformation of the word didn’t stop there, though: early computing machines were bulky, room-filling facilities that – from today’s perspective – might be rather reminiscent of large electric control cabinets. When comparing their capabilities to the enormous power and versatility of modern computers, it’s nowadays probably more fitting to think of them as oversized programmable calculators.
The evolution of language
The etymology of the word “computer” serves as a good example of how language evolves over time, and how words can be understood differently depending on their temporal and societal context. That brings us to the point of this blog post: the usage and meaning of the terms “free” and “open-source” software.
In the world of software development, both terms “free” and “open source” originally had a specific definition tied to them. I don’t want to go too deep into this here, because the entire topic has a somewhat entangled history and feels a bit like a minefield. The gist is that “free” and “open-source” software would grant users the right to run, copy, distribute, study, change and improve the software to their own liking.
In practice, this basically implies two things: 1), the source code of such a software would need to be public, and 2), it would have to be licensed in a way that doesn’t restrict usage (which includes all kinds of commercial purposes, for example reselling the software). In that sense, both terms “free” and “open source” were meant as a strict and explicit definition to promote an ideologic conception of “freedom for software” – or, maybe more precisely – “freedom for software users”.
The problem is that “free” and “open source” are generic words, which can intuitively be understood in a neutral, colloquial sense: “free” as in “available for everyone, free of charge”, and “open source” as in “the code is in the open”. That’s two distinct aspects, where neither of them asserts anything about the terms and purposes of use. If you were to go out on the streets, and ask 100 random people what they think what “free and open-source software” is, then I’d argue that most would probably understand it that way. But even among programmers, I doubt that there is universal consensus. (That might have been different in the early days.)
Are they all doing it wrong? I hardly think so. When looking at myself, I first stumbled across the terms “free” and “open source” some ten or fifteen years ago. I didn’t know about their origin and just naively took them at face-value. It was only until later that I learned about the history of the Free Software Foundation (FSF) and the Open Source Initiative (OSI), and how it all came to be. I found that to be an interesting part of computing history, but it didn’t make me change my usage of the language.
To this day, I still and deliberately mean “free” as in “available for everyone, free of charge” and “open source” as in “the code is in the open” – regardless of how the software is licensed. This has two main reasons: one is that the generic interpretation just feels right to me. The intuitive reading of the terms “free” and “open source” makes perfect and immediate sense, so why would I replace that with an artificial and rather complex definition? The second reason why I refuse to adopt the FSF or OSI definitions is that I disagree with their underlying ideology, so I don’t see any value in supporting them.
A matter of perspectives
Is it ever a good thing to use a nonfree program? Our conclusion is that it is usually a bad thing, harmful to yourself and in some cases to others.
(Via gnu.org)
In contrast to the FSF, the OSI has a less religious framing, but in the end, both organisations aim for very similar outcomes, and specify a restrictive classification based on their worldviews. Either way, that’s not at all what I believe in.
I use proprietary and closed-source software almost every day. I enjoy it, and I’m happy to pay the people who make it available to me. I don’t take any issue with the fact that I’m not able to study, modify or redistribute that software, even in the case when I encounter bugs, or wish for certain behaviour of the software to work differently. When I choose software, then the license model and source code availability are just two factors among numerous others – but in many cases they haven’t been relevant for me at all.
I also actively work on proprietary and closed-source software almost every day. In fact, I actually make my living out of it. Both my clients and I have commercial motivations, and these usually imply to hold back the source code of their software in parts or in its entirety. The typical reason is to protect business interests, and I can’t see anything wrong with that.
It also doesn’t make any sense to me why commercial open-source projects would be a bad thing, or why they wouldn’t be allowed to use the word “open source” for their source code even if it’s, well, open. If you think of Elasticsearch, for example, everyone is allowed to take advantage of the code for their own private and commercial purposes – except for starting a competing business, or for trying to bypass built-in licensing mechanisms. Considering that the entire software wouldn’t even exist without the effort of their initial creators, this seems like a reasonable limitation to me. Anyone who doesn’t agree is free to ignore the project, and neither use nor contribute to it. It’s really that simple. (That is my understanding of “freedom” anyways.)
Language makes the people, and people make the language
As far as the underlying ideological aspects of “free” and “open-source” software are concerned, I cannot see that they have or will ever become a prevalent, mainstream incentive. My impression is rather that a significant portion of the success of many “free and open-source” software projects is primarily due to them being “free” as in “free beer”, with the additional benefit that the “open” source code makes things easier to handle in practice.
What really puzzles me, however, is that instead of accepting this reality, we blindly perpetuate a set of peculiar ethics, even to the extent that we neglect our responsibility for the harm that this creates: on the one hand, aforementioned semi-proprietary open-source projects are regularly condemned for smudging the sanctuary of the community (whoever that includes). But then, when maintainers of substantial and, you know, “real” open-source projects suffer from burnout, or publicly declare that they struggle to get along on a few bucks worth of donations, we fail to produce any answers. (“Answers” as in “actual solutions”, not “kind words” or “good ideas”.)
I don’t intend to be snarky, I just think that’s what we ended up with. I’m also not a querulous freeloader who can’t get enough without willing to give anything back. Quite the contrary: I have devoted literally hundreds of hours of my own time to work on software and software-related topics that I published. Be it open-source projects, technical documentation, or articles on my blog – it’s all there in the open, freely available to everyone with almost no restriction.
The primary reason for me to do this is because it feels nice to openly and freely share things that others might be enjoying as well. No more, no less. Think: “if it helps me, then it might help others too”. It’s an everyday social attitude, not at all special to software, all voluntary and on best-effort basis, with no ideological strings attached to it. It just stands for itself, and that’s perfectly fine.
An open, collaborative and approachable work culture is a valuable and desirable thing. It’s important to not take that for granted. However, it would be illusional to think that these traits were unique or exceptional to the world of software. Like everywhere else, if people enjoy something, it comes natural for them to want to contribute in one way or the other (and for various possible reasons). The extent of this has some very practical and down-to-earth constraints, however, so proclaiming idealistic imperatives might be well-intended, but is really not worth the paper it’s written on.
Instead of needlessly holding on to rigorous commandments, we should be more open-minded in regards to our beliefs, find pragmatic solutions for the problems that we face today, and accept and embrace that there is more than one mindset that leads to good outcome.