I wanted to write this post a long time ago - but refrained from doing so for a number of reasons.
Since this topic came across my path a few days ago, and the discussion is continuing, it finally pushed me to push the publish button - because I think this is a really touchy, emotional and controversial topic - and I think that my thoughts can add to the discussion.
Where did this all start? I think the first time this came across my radar was when Seth Vargo pulled a Chef module from Github.
Thank you for bringing this to my attention. It helped me do the right thing and pull my code from the Chef ecosystem.— Seth Vargo (@sethvargo) September 20, 2019
Take a few minutes to read more about the whole saga here.
Great. You are back. Now onto the real crux of the discussion.
There are a few things I would like to state up front (and yes some of them contradict each other):
- Seth had every right to do what did. I salute him for adhering to his principles.
- Chef has every right to sell their product to whomever they wish. They are a commercial company.
- People have strong beliefs and opinions, on both sides. I do not condone either one of the sides of the argument.
- Each of us are entitled to our opinions, and we are not always going to agree with each other, most of the time actually - we won't!
Should our ethics be part of Open Source?
The crux of the question above is actually a no brainer, if you would ask me this question - the answer that I would give from my gut would be, “Of course it should! The same way that my beliefs drive my my daily decisions and actions - there is no reason why it should not drive the sharing of software”.
But as always, life is not that simple.
I am going to send you off to read another article for a few minutes Should open source be ethical?
Great, you are back.
For those of you who are not members and don't want to sign up for the article I am going to quote some of it here.
Open source is a fork of “free software.” Free software begins with an ethical basis, the four freedoms, which are loosely inspired by Franklin Delano Roosevelt’s “Four Freedoms.” The Open Source Definition (OSD) encodes the same rights as the four freedoms using different terms (read: longer-winded legalese)
One of the four freedoms, for instance, is freedom 0, “The freedom to run the program as you wish, for any purpose.” The OSD encodes similar ideas as “The license must not restrict anyone from making use of the program in a specific field of endeavor” and “The license must be technology-neutral.”
Perhaps as a result of what happened here (it could be that this started long before), some people have started to try and change (or amend) the definition of what open source (and its licensing) is, to include what I call “a morality clause”
Here is another quote from the article.
Coraline Ehmke is a Ruby developer who created the Hippocratic License, which among other things prohibits using the software in a way that “violates human rights laws.” Ehmke also founded the ethical source movement around similar principles: “Creators have the right to prohibit use by individuals or organizations engaged in human rights violations or other behavior deemed unethical.”
What is ethical? And what is unethical?
That is the biggest question - and also probably the hardest on to answer (or more accurately, harder to agree upon). What might seem to conform to one persons set of ethics - will be unethical to another.
Let me give you an example - from my personal life.
I live a place named Efrat, which is South of Jerusalem. It is a small town of about 10,000 people. Public parks, stores, schools, synagogues, everything you would expect in a normal town. I paid for the use of the land, I paid for my house, I pay my taxes, both municipal and government, and I abide by all the laws of the country. I am a law abiding citizen (as are we all) - and I hold myself to the highest standards.
Another person might have this kind of view (and I am going to adopt the other extreme on purpose here, even though my personal opinions are completely the opposite).
You live in illegal settlement named Efrat, which is in the occupied territories. The land does not belong to Israel. It belongs to the Palestinians. The land is stolen and should be returned to its rightful owners. All the buildings, houses and services there should be flattened because they were built against international law. All the people living there are criminals and should be charged with crimes against humanity for stealing someone elses land.
Who is right? Both of them are. At least from their own perspective.
Let me give you another example - this time something that is connected to history (and also relevant because yesterday was Purim) - and I will simplify the story a bit - and of course add some humor.
The Jewish people in Shushan were persecuted by this guy named Haman, who was an anti-semite. He hated Jews and wanted them all dead. So he devised a plot to kill them all. Luckily the queen was Jewish, and she managed to convince the king that Haman was a bad guy, he and all his family were hanged, and the Jews prevailed and overcame the evil anti-semites.
Looking at the other side (and I am allowed to say this because I am Jewish.. )
There was a despised race - that no-one cared about - causing problems in the ?kingdom, but a great leader by name of Haman, found a way to rid the world of this evil, so he went and explained this logic to the king - and of course he agreed, and passed a law to allow us to rid the land of all Jews. But the Jews managed somehow to squirm their way out of it, twist the narrative in their favor, and managed to plot against the law abiding citizens of Persia who were just following the law. They managed to incriminate Haman and got him (and his entire family) executed. They killed all those who tried to defend themselves against the Jewish oppression - and again Jews again managed to control the world.
Who is right - I know which one I would choose - but again both of them are. At least from their own perspective. They will not agree - because they both have their own beliefs and their concept of reality, of what is right and what is wrong.
Use Software for Good
I am all for this - actually everything we do should be for the common good - the more people that believe and adhere to this - the better place the world becomes.
A number of licenses have been proposed to address this topic:
- The Hippocratic License 2.0
- Do No Harm License
- Corporate Accountability Lab (CAL) Ethical IP licencing
Let's dive into some of the examples
The Hippocratic License
Human Rights Laws. The Software shall not be used by any person or entity for any systems, activities, or other uses that violate any applicable laws, regulations, or rules that protect human, civil, labor, privacy, political, environmental, security, economic, due process, or similar rights (the “Human Rights Laws”). Where the Human Rights Laws of more than one jurisdiction are applicable to the use of the Software, the Human Rights Laws that are most protective of the individuals or groups harmed shall apply.
So the devil is in the details. The last sentence tries to address the fact that there could be different definitions of what those laws are - but if I were to take an example of ICE - and are they violating human rights. According to the official law in the US (and I am not a lawyer) - I guess not otherwise the supreme courts in the US would have shut them down. Is it ethical, humane - I guess not. Again the devil is in the details.
Do No Harm
This software must not be used by any organisation, website, product or service that:
a) lobbies for, promotes, or derives a majority of income from actions that support or contribute to:
- sex trafficking
- human trafficking
- indentured servitude
- adversely addictive behaviours
- nuclear energy
- weapons manufacturing
- war crimes
- violence (except when required to protect public safety)
- burning of forests
- hate speech or discrimination based on age, gender, gender identity, race, sexuality, religion, nationality
b) lobbies against, or derives a majority of income from actions that discourage or frustrate:
- access to the rights set out in the Universal Declaration of Human Rights and the Convention on the Rights of the Child
- peaceful assembly and association (including worker associations)
- a safe environment or action to curtail the use of fossil fuels or prevent climate change
- democratic processes
Here we have a license that is even more restrictive - but for some people many of the restrictions are a perfectly acceptable and normal way of life. There are people who love to smoke and believe that this is within their rights, the same about the fact that people believe that owning a gun and using one is completely normal and are acceptable.
People are trying to solve what I see as a humanitarian - or an ethics - problem - with a licensing solution.
This is not going to work. It will also backfire.
When you start excluding certain peoples beliefs and ideas, based on what you (or a great number of people) believe is right, what is to stop other people from doing the same?
This works both ways. Do you think that if someone would create software that is only licensed for males, or females, or people that are above 1.80 meters in height, or people that are only eat kale for breakfast, or people that only keep Shabbat, or people that keep their goldfish in the bathtub, or people that live in tree tops, or those who approve of polygamy, or people who are pedophiles - this would acceptable?
Some of these might seem ridiculous and outrageous and maybe completely illegal in some places - perhaps they are. But in other places, cultures, and countries - they are completely acceptable. Who are we to define what is acceptable for others?
Is there a solution?
Not sure - the same way we all have different opinions on politics, religion, morality - I gather we will have different opinions on can software be used for any purpose. Sometimes we will agree and sometimes we will not.
That is all fine and dandy - but it is greatly philosophical.
In practice - if you create something and it is yours - then it is completely within your right to say what it can or cannot be used for. When others start to contribute and your project grows - then you should create a mechanism that will define what is acceptable and what is not. Take into account - you will not all agree - and trying to force your opinion on others will most likely be the end of their collaboration on the project.
If you decide that it is being used in a way that contradicts your values - by all means - remove it (like Seth did), but you have to be prepared for the backlash and the consequences of those actions.
But don't be surprised that people create software and licensing schemes that exclude you and your ideals - because the same way that you excluded them - they have every right to exclude you as well. You could be the one who is excluded from using other software in the future.
So I leave you with some food for thought. It is a slippery slope that I do not think we all want to go down. It will create may open source movements communities and further divide us as people, instead of providing unity.
I only hope that we leave these discussions, outside of the open source software community. They do not belong there - and that we can trust each other to do the right thing.
I would be very interested to hear your thoughts or comments so please feel free to ping me on Twitter.