Once upon a time, the idea that “only the code mattered” was sold as a way to be inclusive. No one would be shut out if their code was good.

But building software is more than code. It’s design. Planning. Discussion. It’s figuring out use cases, misuse cases, and failure modes. It’s interacting with people.

And if you allow some people to treat others like crap because only the code matters, you end up causing harm and driving people away.

Which obviously isn’t inclusive.

If you mistreat people or violate ethics to make your “technically perfect” software, those people have still been mistreated. Those ethics have still been violated. People have created marvels of engineering and fantastic art by abusing or exploiting others. People have done the same while abusing or exploiting people on the side. And people have created wonders while trying very hard not to abuse or exploit others.

The accomplishment doesn’t erase the exploitation or abuse. And if you can accomplish something incredible without mistreating others, it obviously doesn’t justify the mistreatment.

But the culture of “only the code matters” turned into a culture of tolerating assholes because they were good at their job. The ends justify the means. From trying to enhance freedom, to embracing Machiavelli.

It certainly didn’t help that 90s hacker culture had a significant BOFH element to it, with its built-in disdain for those with less technical knowledge. The Free part tended to prioritize programmers and sysadmins over “lusers.” It was Animal Farm with computer users. Sure, we tried to throw off the corporate overlords who were dictating how people could use their computers. But some computer users were more equal than others.

So a lot of people who could have become part of the Free Software community found a hostile environment and left in disgust. Or fear. And even if you don’t care about the harm done to them, consider their potential contributions. Free Software has always had a problem with coverage: Programmers work on problems that they find interesting or useful. The boring parts, the use cases that they personally don’t use, tend to fall by the wayside.

Yeah, your code is good…but the spec’s incomplete because you pushed away the people who would have pointed out a common use case, or just how easy it would be for a feature to be misused. You didn’t think they were worth listening to because they weren’t rockstar coders. But they also had information you didn’t.

Not that throwing off the corporate shackles has worked out all that well. Every platform now has its own walled garden. Microsoft is less dominant than it once was, but we have new mega-corps who’ve managed to leverage an internet built on Free/libre and open-source software into their own positions of dominance. And trying to maintain services for people who’ve come to expect free/gratis has brought us to the point where adware is the norm, and surveillance is everywhere…to better target those ads. And the majority of computing devices out there are locked down, preventing ordinary users from tinkering with them and developing that technical competence that might bring them into the fold…

If we’ll even let them join.

A long-standing challenge for advocates of Free and Open Source Software (a.k.a. FOSS) has been explaining just what the term Free Software means, because in English,* the word “free” has several unrelated meanings. The classic explanation has been to compare “free speech” and “free beer.”

You see, when the average person hears the phrase “free software,” they generally assume it means the same kind of thing as “free beer.” But it’s really about the software being unencumbered – it’s about your ability to use, study, learn from, and improve the software. It’s not about the price tag.

The problem with the “free speech” label is that the phrase has its own very specific meaning and political overtones. As a result, people tend to focus on the ideas inherent in freedom of speech, dealing with software as a form of expression and focusing on issues like censorship. These are valid issues, but not the heart of what “free software” means.

Today I read a post on Groklaw describing it in terms of “free as in coffee” vs. “free as in liberty” – primarily because he didn’t like the association with beer – but I liked the use of liberty (edit: or just freedom if you want to keep the phrasing consistent) rather than speech, because it conveys the meaning without bringing in other issues.

(Ironically, the FSF page explaining the phrase links to a list of confusing words and phrases that are worth avoiding… that doesn’t include “free!” Update: These days it lists “for free,” “freely available” and “freeware”…but that still doesn’t solve the confusion of “free.”)

*In other languages, the meanings are more distinct. There’s no confusion between software libre and software gratis.