In response to my last post, a commenter was asking about the idea of “/our guys/” doing tech. I’ve thought about this before, and I said that it might be better to get involved in the broader open source community and contribute to projects that would be helpful – and that we don’t need /our tech/. The commenter gave this reply:
“This mindset has historically worked but I question whether that will change. The idea that software licenses should be denied to people who disagree with tranny github maintainers is actively being promoted in some circles (see “ethical source” licenses).
For example, ml5js is a popular machine learning library that I’m sure a lot of smart white men contributed to. Then one day they “improve” the license from MIT to some bullshit where you can’t legally use it if you are racist…
The thing to keep in mind is that restrictive licenses can spread like a cancer (1 GPL licensed dependency forces your whole project to be GPL licensed). Therefore, all you would need is a few important libraries being co-opted by ideologues, and complicity from the rest of the community.”
This software license bit was interesting to me. If these “ethical source” licenses take on, that would completely kill the point of open source software in the first place. I personally doubt this will happen for reasons I’ll try to explain a bit later at the end of this post, but the point raised by this reader is definitely a space to watch.
If you aren’t familiar, “open source software” refers to a type of software around which there is a flourishing community. There is a detailed definition here as to what makes a project open source, but the key components are that the software’s source code is openly available, that the software can be redistributed freely, and that modifications and derivative works from the software are allowed. GitHub is the most prominent center of open source community activity, where developers around the world contribute to projects.
Most open source projects have a handful of key contributors that do most of the work, with some minor features or bug fixes coming from a wider set of one-time or occasional contributors. It is not uncommon for large tech companies to allow some of their employees to spend some of their paid time working on open source projects that they rely on – both as a way of “giving back” for public relations purposes, and as a way of influencing the direction of the project. This collaboration between hobbyist and corporate contributors is a key piece of making open source a practical endeavor. Many major projects would not survive without some corporate participation or backing.
As I mentioned in that previous post, most major open source projects have a Code of Conduct which governs the interactions among anyone contributing to the project. Such documents always include the basic requirement that everyone be respectful in their interactions with each other and then also contain a litany of libtard political stances.
To date, I have never been affected by a project’s code of conduct. As a user, they don’t affect me. As a contributor, I just deal professionally with whomever I need to – so codes of conduct just don’t even come up.
In working with open source projects there are generally two major categories of licenses. Licenses such as MIT, ISC, and Apache are fairly permissive licenses. They let other people use software, including for closed-source and commercial use. My favorite is the Apache license but probably the most prolific is the MIT license:
“Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so…”
Such licenses allow a user to use and modify a piece of software and also to sell derivative works and use it for commercial purposes under a more restrictive license.
Another type of license are “share-alike” licenses such as the Gnu General Public License (GPL), they let everyone use and modify the software but also have the requirement that derivative works that use the software also be covered by the same license. This is sometimes called “copyleft”.
“The GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users… If you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.”
I decided to investigate and I went to their website and –
The license for the ml5.js library requires that all uses of the software be consistent with the project’s code of conduct.
“You must use this software in compliance with the ml5.js Code of Conduct as it exists at the time of your use. This includes cooperating with any investigations of your compliance with the ml5.js Code of Conduct. If anyone notifies you in writing that you have not complied with the Code of Conduct, you can keep your license by taking all practical steps to comply within 30 days after the notice. If you do not do so, and the ml5.js Code of Conduct Committee (or its equivalent or successor) agrees that you are in violation of the Code of Conduct, your license ends immediately.”
Regardless of what the content of the code of conduct actually is, this is an inherently unstable situation. The fact that all uses of a software have to comply with a changing code of conduct harshly limits adoption. Suppose you were to build ml5.js into a project and they updated the code of conduct to be inconsistent with what you’re doing. According to this license, you may then have to shut down the project until you can find another library.
The Code of Conduct is what you might otherwise expect, with the key difference being that all uses of the software are expected to comply.
“We are a community of, and in solidarity with, people from every gender identity and expression, sexual orientation, race, ethnicity, size, ability, class, religion, culture, age, skill level, occupation, and background.”
I’d say. One of the main devs seems gay based on the project’s (otherwise interesting and informative) videos.
“We reject the claim that any technology is neutral and acknowledge that every technology has the potential to do as much harm as good. We acknowledge that when technologies cause harm, the harm disproportionately affects Black/Indigenous, People of Color (BIPOC) queer, trans, disabled, femme, low-income, survivors, and all other marginalized bodies and communities.”
There is a growing trend I’ve seen in tech community chats in general to dishonestly “reject” the claim that “technology is neutral”. Since I’ve never heard anyone argue that technology is neutral, these people aren’t actually arguing against or rejecting any position that actually exists. They are simply straw-manning common open source standards and undermining them.
The open source norm is that open source software is “free” (as in “freedom” not “price”) for other users to use as they wish (with the only major restriction being those licenses which force derivative works to also be free). Placing ideological constraints on usage is directly counter to this. The open source standards have clear value and wide support much deeper than vocal agitators, so there will be a lot of resistance to this kind of license catching on.
“This Code of Conduct is designed to apply to behavior within the ml5 community and to the uses of the ml5.js library. Software that uses the ml5.js library is required to follow the Code of Conduct by the library’s copyright license.”
Here’s the main body of the Code of Conduct that discusses what you cannot use the software to do:
This certainly does imply that you cannot use ml5.js for racist purposes. But by disclaimer you might still be able to use it while being a racist as long as you are not using the software itself for racist purposes:
“Personal behavior that violates the Code of Conduct does not automatically mean that software created by that person violates the Code of Conduct.”
The ml5.js project maintainers cited a few meme licenses as inspirations for what they are trying to do. These are also going to have a hard time going anywhere.
Consider, for example, the Anti-Capitalist Software License.
“The Anti-Capitalist Software License (ACSL) is a software license towards a world beyond capitalism. This license exists to release software that empowers individuals, collectives, worker-owned cooperatives, and nonprofits, while denying usage to those that exploit labor for profit.”
Right. Check out the actual text of this LARP:
“ANTI-CAPITALIST SOFTWARE LICENSE (v 1.4)
Copyright © [year] [copyright holders]
This is anti-capitalist software, released for free use by individuals and organizations that do not operate by capitalist principles.
Permission is hereby granted, free of charge, to any person or organization (the “User”) obtaining a copy of this software and associated documentation files (the “Software”), to use, copy, modify, merge, distribute, and/or sell copies of the Software, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all copies or modified versions of the Software.
- The User is one of the following:
- An individual person, laboring for themselves
- A non-profit organization
- An educational institution
- An organization that seeks shared profit for all of its members, and allows non-members to set the cost of their labor
- If the User is an organization with owners, then all owners are workers and all workers are owners with equal equity and/or equal vote.
- If the User is an organization, then the User is not law enforcement or military, or working for or under either.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.”
“For too long, we as software developers have divorced ourselves from the consequences of the code that we write. We have told ourselves that development is a pure and abstract pursuit [COMMENT: LITERALLY NOBODY HAS EVER SAID THIS WTF], and have spent our careers writing programs with the goals of clarity, conciseness, readability, performance, and elegance.
Politics and software are so tangled that they cannot be reasonably separated. Consider the GPS software that tells you how to get to a restaurant; it’s also used to direct military drones to their targets…
All of these technologies are inherently political. There is no neutral political position in technology. You can’t build systems that can be weaponized against marginalized people and take no responsibility for them.”
Notice again how nearly all of these “ethical licenses” have to premise their endeavors on a nonsensical characterization of open source standards.
“Open source licenses have long been the primary tool for promoting the use of our software under our own rules and conditions. In the past these licenses were used to allow the free distribution, modification, and use of our software. But there is nothing stopping us from taking this further.”
But there is something stopping them from taking this further. Partly, it’s the fact that by “taking this further” they mean “undoing it entirely”.
The Hippocratic License goes a step further than ml5.js license, as this one specifically refers to the conduct of the licensee separate from the use of software. The license lists ethical standards that a licensee must comply with in order to have rights under it.
A licensee must not:
“Infringe upon any person’s right to life or security of person, engage in extrajudicial killings, or commit murder, without lawful cause”
“Discriminate on the basis of sex, gender, sexual orientation, race, ethnicity, nationality, religion, caste, age, medical disability or impairment, and/or any other like circumstances”
“Be an individual or entity, or a representative, agent, affiliate, successor, attorney, or assign of an individual or entity, that engages in fossil fuel or mineral exploration, extraction, development, or sale”
“Be an individual or entity, or a representative, agent, affiliate, successor, attorney, or assign of an individual or entity, identified by the Boycott, Divestment, Sanctions (“BDS”) movement on its website”
“Interfere with Workers’ free exercise of the right to organize and associate”
In order to use software covered by the Hippocratic License, you also can’t be the Taliban or do business with them.
These licenses are not popular and are rare. Any project that adopts effectively removes itself from the open source community and makes its software unusable. I see no way around this problem for the advocates of such licenses.
A discussion of the Anti-Capitalist Software License (ACSL) contained this important critique:
“I’m surprised this is being received this well, when it should be apparent to anyone that the license is practically unworkable, and quite sloppy in legal terms. Your source is public for the good guys, and you tell the bad guys, “don’t you use this!”.
I think it goes without saying, that this should not be used for any serious project. You isolate yourself from the entirety of human software progress…
Ultimately, even if you agree with the spirit of the license, you should consider replacing the moralist particularism with an universalism, such as that of the GPL.”
“The intro to the Hippocratic Licence might lead some to believe the license is an Open Source Software licence, and software distributed under the Hippocratic Licence is Open Source Software.
As neither is true, we ask you to please modify the language to remove confusion.” – @OpenSourceOrg
The creator had a few responses to this:
“This is the problem: the current structure of open source specifically prohibits us from protecting our labor from use by organizations like ICE.
Developers are (finally) becoming more aware of the impact that their work has on the world, and in particular on underprivileged people.
It’s late to come to that realization, but not TOO LATE to do something about it.
The lesson here is that TECH IS NOT NEUTRAL.” – Coraline Ada Ehmke
Again this is an incoherent position. It’s not the “current structure” of open source that presents the problem. It’s open source itself that he/she/it has a problem with.
I don’t believe that “ethical source” will displace open source. The whole idea is a signaling thing, and it’s a signaling thing that makes any participating project unreliable and therefore unusable for any real purpose.
As I suggested earlier, corporate input is very important for the open source community – making anti-capitalist licenses unworkable. Many major open source projects have significant corporate input (including ones that often have dealings with parts of governments). While there are downsides to this arrangement it’s generally a win-win for hobby enthusiasts and the involved corporations. If anti-capitalist licenses became more mainstream, many projects couldn’t get off the ground.
Additionally, trends within the open source community have been moving in the opposite direction. “Copyleft” licenses such as GPL we’re more common. They remain appropriate for some projects, more permissive licenses (that allow closed-source derivative work) are much more common. All the “ethical source” licenses have all the drawbacks of copyleft in addition to the other problems that make them unworkable.
The ml5.js license in particular has the problem of relying on a changing code of conduct. I expect this to place a hard cap on its adoption and the project will probably wither into a smaller hobbyist project. If ml5.js was filling a critical niche, then I would also expect a true open source alternative to materialize in due time (probably with heavy corporate input). This is how the community works and how I believe it will continue to work for the foreseeable future.
The other “ethical licenses” may not have the problem of changing out from under a user – but their existing provisions severely limit their use. I can see some key libraries being “co-opted by ideologues” as the commenter put it, but I don’t see “complicity from the rest of the community.”
This will likely become sideshow for a relatively small clique of true-believing libtard developers. I could be very wrong about this – it’s certainly possible that the next version of WordPress will be a full rewrite with a new license that makes it illegal for use as a host for content like the Hyphen-Report. But I don’t believe that will happen because, whatever its merits to ideologues may be, “ethical source” presents serious usability issues and doesn’t have any adaptive advantage over open source. The needs for corporate support and widespread usability are too strong.