Unfortunately in the software community we can no maintain the pretense that coding is irrevocably for good, nor that technology for its own sake is a worthwhile goal. Inevitably each useful technology will get used for non-virtuous ends, such as intellectual property infringement, discrimination and fraud. And while bad actors will often ignore license terms - regardless of the specific license, be it GNU, Apache, etc - spelling out intent of use has a valid part in the wider discussion around code, and is largely enforced.
While contentious, ethical licenses seek to mitigate the harm done in the world by software and the people using it. Some such as NoHarm take a route traced by Apache and the like, developing a rigourously legally-defensible license with little flexibility. I am more of the zLib license mindset, where the general understanding is laid out in plain english but the legality is looser, so that within a paragraph or two, people clearly know the general gist of what they can-and-cannot do.
To this end I've developed a license based on zLib (with editing for clarification, as zLib can be interpreted incorrectly at times), loosely based upon engaged buddhist ethics for laypeople. These may not be everybody's idea of ethics, and that's alright. If you find you disagree with the terms, you can either contact me to discuss them, or find another bit of software under a different license.
This code is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this code.
Permission is granted to use this code by anyone and for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1 "Rights" in this context refers to the UN Declaration of human rights in the case of humans and additionally the UN convention of the rights of the child in the case of children. For animals, it refers to the UN convention on animal welfare (currently in draft).
Examples of 4's sub-section items follow:
Perhaps. The restrictions placed upon GPL licensed software are more severe. The above license allows use in the vast majority of scenarios, commercial or otherwise. If restrictions were a cause of software demise, I would expect GPL software to be a death knell for a project. Yet here we are.
Apache, GPL, LGPL, MIT, etc licenses can't necessarily be used together and yet everything seems to work fine in the real world.
They already do. They guard against theft of concept, plagiarism, and in many cases, the use in non-free software. Those are ethical standpoints. It's just that not many of them take into account any of the broader concepts of ethics in society and tend to focus narrowly on intellectual property rights.
Discrimination is a tricky subject area with a lot of nuance. I've opted to subsume that under clause 4d ie. deliberately spreading dishonesty. It's dishonest to state that people born to a particular ethnicity, nationality or gender are less-suitable, for, say, math work. Or that they're less deserving of respect and love. It's not dishonest to state that Santa Claus is assumed to be a older white male in western countries and will generally be played by one. Or that males are largely responsible for violent crime worldwide. And so on.
Any linked list, to paraphrase a fellow coder, that uses the energy equivalent of a small country to update itself, is inherently unethical. And it's a ponzi scheme.
Contact:
plf:: library and this page Copyright (c) 2025, Matthew Bentley