Readit News logoReadit News
tgsovlerkhgsel · 2 months ago
"Bad guys can't use it" is per definition incompatible with free software.

For this author's definition of "bad guys" (megacorps), AGPL is probably the easiest poison pill. As with all poison pills, this will also make many (most?) "good" users unable to use it.

This project is no curl or database engine, it seems to be a slightly easier way to set HTTP response headers. I bet most of the uses are transitive (someone using something that uses something that uses a framework that uses something that uses this project).

In particular, this project is something small enough that nobody will pay for it, not because it's not worth it, but because the friction of paying for it is higher than rewriting it from scratch. And "the bad guys" are unlikely to use it directly in their major products due to the pure nature of it.

In most cases, but especially this one IMO, you just get to choose wheter to contribute to the commons, the actual commons, for everyone, including "the bad guys" - or not.

orochimaaru · 2 months ago
I don’t believe AGPL can be applied retroactively. What’s there today with MIT license stays and there can be a new version with the AGPL. Unless the author is planning major upgrades, the previous work is open to be forked and used with MIT.

Open source is like free speech. We are never going to control what people can say (as in who uses the sodtware and for what purpose). But we are happy that it exists.

computably · 2 months ago
It's not a question of whether it can be applied retroactively, it's whether the existing license is revocable. Open source licenses are not revocable as it would defeat the purpose if copyright holders could simply revoke the original license at will.
lenkite · 2 months ago
Yeah, the big problem is defining who are the "bad guys". He will probably need to make a "bad-guys_do-not-use.txt" with 10k lines - a file that will the leading star in repo commits, depending on the politics of the week/month/year.
tgsovlerkhgsel · 2 months ago
Since the author mentioned trying to find a general solution, not one just for his project - here's one that could work:

Make a new standard license similar to the GPL, but one that includes machine-readable payment requirements, each consisting of:

- a UUID

- a minimum profit threshold

- a license fee, either a fixed amount or some well-defined formula (you'd probably want an inflation adjustment system)

- a recipient

Anyone who wants to use the software can do it, but if you cross the profit threshold, you have to pay, once per project. Dependents would naturally inherit the payment requirements of their dependencies, but you'd only pay once per dependency even if it was used in multiple projects (hence the UUID).

With high enough profit thresholds and small payments, this should avoid the license from becoming toxic:

* If you aren't a megacorp, you don't care because you're not hitting the thresholds.

* If you aren't a megacorp but dreaming of becoming one, you still don't care, because if you do become one, you can afford the cost, and the combined cost (payments + compliance cost) is well understood and limited.

* If you are a megacorp, you still don't care, because we're most likely talking about peanuts and the machine readable descriptions make it practical to comply, and you get a "software bill of materials" out of it as a side effect.

This relies on the minimum profit thresholds being high enough and the license fees low enough. This could be achieved by the text of the license itself being licensed only as long as you keep within certain thresholds.

Building a new license ecosystem and the critical mass behind it is a tall order, but I think this way it's not hopeless-from-the-start. The design isn't meant to "capture a fair share of the value" or anything like that, it's meant to be minimally toxic (because that's a hard requirement for having a chance of becoming popular) while still delivering some minimal contribution to big projects with a lot of dependents.

I was originally planning to suggest a revenue threshold, but I think profit is better, as it excludes nonprofits, startups in the starting-up phase, companies that aren't money printers, etc.

LocalH · 2 months ago
That's a nice idea, but it isn't really "open source" or "free software" if you implement that.
satvikpendem · 2 months ago
There are a lot of those, source available but not open source licenses, like the BSL, FSL, etc.
e40 · 2 months ago
I read that Star Wars still hasn’t turned a profit. This is only slightly in jest.
thiht · 2 months ago
> "Bad guys can't use it" is per definition incompatible with free software

It's incompatible with 1 definition of free software. More and more developers are unhappy with this definition.

mzajc · 2 months ago
It is incompatible with all widely adopted definitions of Free software. If you restrict who can use your software, how, or for what purpose, it's fundamentally unfree.

The term that doesn't make any claims about whether a piece of software respects user freedoms is source-available, which these "everyone except the bad guys" licenses are commonly categorized as.

ffsm8 · 2 months ago
No, the devs aren't unhappy with this definition.

The ceos that want to market their software as open source are ಥ ‿ ಥ

crabmusket · 2 months ago
Two thoughts.

Ben Thompson and James Allworth discussed an idea on an episode of The Exponent (https://exponent.fm/) the idea of a "principle stack", and at which "layer" of the stack it's appropriate to address different societal issues. I wish I could find the episode again, it was quite a few years ago. The upshot being... maybe software licensing isn't the right place to address e.g. income inequality?

On the other hand, I definitely encourage tech workers (and all workers) to think about their place in the world and whether their work aligns with their personal values. I think the existence of free and open source software is a fantastic thing, but I think we should continue to evaluate whether it is in danger, or whether it could be better, or whether our efforts might be applied to something else.

For example, I'd love to see co-ops developing shared-source infrastructure based on principles of mutuality, which the sector is built upon anyway. The co-op principles already include cooperative and communitarian ideas which mesh really well with some aspects of open-source software development. But co-ops aren't about just giving everything away either. There could be a real new approach to building a software commons for mutual businesses, rather than a kind of freedom-washed way for big tech companies to benefit from free labour.

nine_k · 2 months ago
It is impossible to write a real "use for good, not evil" [1] license, because there's no formal, universally accepted notions of good and evil. While there are things that are universally considered good, or considered evil, the areas around them are large, nebulous, and are anything but clearly outlined. Hence legally avoiding the "anti-evil" license terms will always be a relatively easy option for a willing party. Moreover, there is a large range of issues and causes that are considered "good" by some and "evil" by others, so there will always be a controversy and disagreement even without any legal suits, where everyone would consider themselves sincerely right, not just technically correct while violating the spirit.

A weapon that only a lawful good character can wield is the stuff of fairy tales and board games, which do not reflect reality fully enough.

Unlike this, freedom is pretty well-defined, so e.g. GPL is upheld by courts.

[1]: https://www.json.org/license.html

awesome_dude · 2 months ago
I have this thinking that, in reality, there's no such thing as objectively 'good' or objectively 'bad'

It's all context and timing.

Almost everyone that will attack this idea will present actions that are loaded with context - murder, is killing when it's bad, self defence is killing when it's good.

If you look at everything, and look at it's non-contextual action, then you can easily find contextually 'good' and contextually 'bad' instances of that thing.

Even further, the story of the man who lost his horse [0] shows us that even if we say that something that happens is contextually good, or bad, the resulting timeline could actually be the complete opposite, meaning that, ultimately, we can never really know if something is good, or bad.

[0] https://oneearthsangha.org/articles/the-old-man-who-lost-his...

type0 · 2 months ago
> "the Software shall be used for Good, not Evil."

For JSLint, Crockford gave an exemption though: "I give permission to IBM, its customers, partners, and minions, to use JSLint for evil."

https://gist.github.com/kemitchell/fdc179d60dc88f0c9b76e5d38...

lloeki · 2 months ago
> there are things that are universally considered good, or considered evil

What a bold claim.

0xDEAFBEAD · 2 months ago
From the perspective of decreasing income inequality on a global scale, when multinationals fire workers in developed countries and replace them with lower-paid workers in developing countries, that is a very good thing, since people in developing countries need the jobs more. I would be skeptical of any license which privileges co-ops over multinationals for that reason. Co-ops are likely to reinforce existing global income inequality, due to labor protections for developed-world workers. A globally rich, privileged slacker gets to keep a job they're barely doing, because they had the good fortune of being born on the right dirt. It's modern feudalism.
crabmusket · 2 months ago
I haven't yet fully digested this comment, but I will say right off the bat that there are many co-ops in the developing world. Nathan Schneider in Everything for Everyone describes the culture shock of arriving in Nigeria (IIRC) and co-ops being everywhere, just such a normal part of life.
berdario · 2 months ago
I think there's a kernel of truth in what you said, but you're also talking about avoiding accidental "income inequality" in this comment, and "economic stagnation" in the other.

It seems like you might've moved the goalpost a bit...

At the end of the day: any entity that works for the public good (be it a co-op, a non-profit or a state owned enterprise[1]) would be a better recipient of the free labour provided by f/oss hobbyists, than a for-profit multinational... And often economic performance is equivocated with financial performance. At the end of the day, if everyone can put food on the table[2] (here and in the developing world), I couldn't care less if some GDP metric might imply that "there's stagnation actually"

[1] My point being, that a SOE will have more bargainining power than a small co-op, and thus be able to fight unequal exchange and compensate for income inequality

[2] "food on the table" is a proxy for: food itself, shelter, healthcare, affordable heating (or cooling) and consumer goods and services (tech gadgets to learn and keep in touch with family, long distance transport to visit relatives, etc.)

rsingel · 2 months ago
I agree and it's happening. I co-founded Outpost Publishers Cooperative as a member services co-op to provide enterprise-level subscription services to publishers on Ghost (which is a non-profit).

I'm biased but I think the model of member-service co-ops (like Ace Hardware) providing tailored software services to particular industries is fertile ground. Free of VC incentives, reasonably profitable, aligned incentives, and the state of software tooling makes this doable.

And since this model doesn't require capturing as much value as a VC funded venture, it's more sustainable.

But the hard thing is figuring out how to get to decent product without upfront investment, in lieu of investment models that don't require outsize returns.

I can think of ways to create early capital but I've yet to see an industry think through how to fund smart suppliers without falling into the trap of thinking they need to be VCs.

mamcx · 2 months ago
> how to get to decent product without upfront investment

Yeah, this is the hard part.

I work in the small “ERP-like” business market and I’ve come up with some good ideas (based on the reaction of the people I talk to). But the problem is that even a small team of about five genuinely solid developers can cost around US $300,000–500,000 per year — and that’s even factoring in that I’m in LATAM!.

That’s a lot.

To make something like this happen, you need to convince fairly big players — the ones who have the capital and the patience, but more importantly the vision. And that’s the part that’s rare. At least in theory, that’s what VCs are supposed to bring.

rsingel · 2 months ago
I'd say too we aren't the only ones. Plausible Analytics is a great, mission-driven, open-soutce non-profit providing cookie-free web analytics.

And they let us bulk buy for our member publishers.

There's so much potential in what you are suggesting!

crabmusket · 2 months ago
That is fantastic to hear, kudos to you and best of luck! The funding is definitely an issue I'm chewing over in my mind as I think about these issues.
0xDEAFBEAD · 2 months ago
>at which "layer" of the stack it's appropriate to address different societal issues.

One problem with trying to restrict the availability of open-source software: In the limit, as LLMs become better and better at writing code, the value of open-source software will go to zero. So trying to restrict the availability of your code is skating away from where the puck is going. Perhaps your efforts to improve the world are better allocated elsewhere.

salawat · 2 months ago
I mean, if you ignore the fact there would be no LLM's without wholesale scraping of the corpus of all software ever written.

LLM's are the least ethically sourced pieces of technology I've ever seen. That they have businesses built that haven't been sued out of existence for not asking for permission to train first is positively mind boggling.

crabmusket · 2 months ago
I think I confused two different discussions on Exponent. Here's one episode where they discuss the stack, particularly in reference to net neutrality:

https://exponent.fm/episode-168-a-community-of-loonies/

But I'm sure I remember an episode where they discuss Matthew Prince and some neo-nazi site.

The "principle stack" is a separate concept which I haven't yet found.

crabmusket · 2 months ago
Oh, silly me. It's the episode called "principle stacks", which I didn't notice skimming through the feed, nor did Google find it.

https://exponent.fm/episode-177-principle-stacks/

paulbjensen · 2 months ago
In theory you can change the licence and hope that those that use the software respect the licence terms, but that depends on trusting others.

I think of the case of the Russian programmer who was arrested and jailed for stealing proprietary code from Goldman Sachs. During the trial it was revealed that Goldman Sachs would use open source software and replace the software licence with their own:

"Open source was an idea that depended on collaboration and sharing, and Serge had a long history of contributing to it. He didn’t fully understand how Goldman could think it was O.K. to benefit so greatly from the work of others and then behave so selfishly toward them. “You don’t create intellectual property,” he said. “You create a program that does something.” But from then on, on instructions from Schlesinger, he treated everything on Goldman Sachs’s servers, even if it had just been transferred there from open source, as Goldman Sachs’s property. (At Serge’s trial Kevin Marino, his lawyer, flashed two pages of computer code: the original, with its open-source license on top, and a replica, with the open-source license stripped off and replaced by the Goldman Sachs license.)"

From: https://www.vanityfair.com/news/2013/09/michael-lewis-goldma...

gus_massa · 2 months ago
From the article:

> ‘If you tell me everything, I’ll talk to the judge, and he’ll go easy on you.’

Reminder: That's a lie. Shut up and ask for your lawyer.

lclc · 2 months ago
Indeed. As to why, see this video with Regent Law Professor James Duane: https://www.youtube.com/watch?v=d-7o9xYp7eE

It's pretty shocking.

port11 · 2 months ago
This is appalling. Maybe all open-source code could be published as part of a not-for-profit cooperative that defends the programmers that enter into it.
skeledrew · 2 months ago
I think that's sort of what the FSF does for *GPL licenses.
sirodoht · 2 months ago
Free software is about freedom. Restricting it from anyone means it's not free. There is no requirement that we must create free software but if it's called free I think it should always have the basic qualities of freedom; not only when it fits our purposes and our values.
charles_f · 2 months ago
> shift the default in open source from “it’s free for anyone to use” to “please don’t use this if you’re evil”

Point the author makes is precisely that they don't want to do free software, and they'd like to convince you not to do free software

smeej · 2 months ago
There are already so many ways (and reasons) not to do free or open source software. People who find them convincing are using them. People who don't generally are not.

It seems like the author of the post is just potentially having a change of mind from one side to the other, which barely even seems noteworthy.

lelanthran · 2 months ago
> Point the author makes is precisely that they don't want to do free software, and they'd like to convince you not to do free software

Sure, but they are not suggesting any practical alternative by issuing a license that essentially boils down to "Please don't use this if you are evil".

Saying that the author has an almost childlike understanding of what the word "evil" means is something of a slur against actual children - I've got a 6 year old who understands subjective morals better than this author does.

t0mas88 · 2 months ago
It's a choice for the authors to make based on what type of free they believe in. I think free under MIT and GPL are two different philosophies on how you see "free".

MIT: free for anyone, do whatever you want

GPL: free if you also make your software free

AGPL: GPL but SaaS can't circumvent the requirement to make your software free

I see why principled open source proponents would select GPL or AGPL. They don't just want their code to be used freely by others, they also believe more software should be free and using GPL helps with that.

GPL restrictions don't make software under the GPL not "free" as in freedom. Just a different philosophy.

akoboldfrying · 2 months ago
I like the GPL and think its "virality" is both clever and a worthwhile social goal, but I think it's misleading to call it "free". It directly restricts possible usage of the software in question -- yes, in a way that's designed to increase another kind of freedom, but it restricts nonetheless.

FWIW I have the same quarrel with people who talk about a country being "free". To my mind, a truly free country would have no laws. It would be a horrible place, because the restrictions that laws place on us tend to make things better for everyone (we may disagree on this law or that law, but some laws, like "Don't kill someone without a very good reason", would have >99% popular support anywhere in the world).

"More free" does not necessarily imply "better"; it could be better or worse. I'd like to shift usage of the words "free" and "freedom" in this direction, but think it's probably a lost cause as the words are too emotionally charged with connotations of "good".

pabs3 · 2 months ago
I'd choose a different framing to that:

MIT: freedom for devs

GPL: freedom for users

AGPL: freedom for SaaS users

Deleted Comment

wesleywt · 2 months ago
And yet there are licenses restricting open source use. You should absolutely stop people from using your work if it doesn't align with your values.
WalterBright · 2 months ago
If you prevent licensing software to large corporations, small corporations won't use it, either, because small corporations may get acquired by large ones. Such a license would be a "poison pill".

I am not a lawyer and this is not legal advice.

We picked the Boost license for the D Language Foundation because it is the closest to public domain we could find.

Besides, why would "bad guys" be deterred by a license, anyway?

burnt-resistor · 2 months ago
Exactly. Unreasonable conditions imposed on everyone to "solve" an ideological or societal matter impose externalities on bystanders. It's religious fervor not backed by honest appreciation of human nature or reality. While I don't like end-uses that exploit or harm others, there is no meaningful magic spell that can police usage of code gifts apart from not giving away anything and micromanaging every single invocation for moral purity.

Dead Comment

O_H_E · 2 months ago
> Besides, why would "bad guys" be deterred by a license, anyway?

I imagine because we're talking about a subcategory of "bad guys" who still like to stay within the confines of the law (supposedly at least).

tbrownaw · 2 months ago
> If you prevent licensing software to large corporations, small corporations won't use it, either, because small corporations may get acquired by large ones. Such a license would be a "poison pill".

Acquisitions already come with a giant laundry list of IT work to bring things into compliance with internal policies and maybe contractual requirements and such.

Would one more thing that has to be done sooner rather than later really make that much difference?

arthurcolle · 2 months ago
Why isn't there a "if I like you you can use it"

I like you @WalterBright you can use any of my stuff even if you get acquired

WalterBright · 2 months ago
Thank you kindly!

There's not a whole lot of point to acquiring Boost licensed software. Of course, they could always acquire me and pay me handsomely!

limagnolia · 2 months ago
Umm, there is. Basically, thats the default in most of the world. My recomendation if that is what you want to do, is to put a note in the readme and in LICENSE.txt that says "this project is copyright by me. If you want to use i, reach out to me and if I like you, I will give you a license". Then if you like someone, give them a written statement that you like them, and grant them permission to use your project(s), and under what terms, if any.
BrenBarn · 2 months ago
Such a poison pill could be considered a feature insofar as it discourages consolidation of companies.
hacym · 2 months ago
There are very few, if any, projects big enough to be a consideration to NOT acquire an entire company.
WalterBright · 2 months ago
Big companies can implement economies of scale. This is what makes the country wealthy.
cadamsdotcom · 2 months ago
Open source is a gift you’re giving.

Companies take that gift and use it to provide a service for cheaper than it would otherwise be if they had to build it all themselves.

You are already benefiting from open source - but it is a tiny benefit and subtle and very indirect and very diffuse.

Licensing is thorny but it’s personal choice too.. would you use a project whose license is “use it for now unless or until I decide you’re evil at my discretion”.. probably not. Probably, someone else would get the users you have now, and the corresponding popularity.

It is a tough choice, but it’s a lovely and important thing you’re doing when you provide the gift of open source software.

smeej · 2 months ago
I think I probably would use a project that had a license that said "you can use this for now, but if I later decide I don't want evil people to use it, you'll have to maintain your own fork based on the last version before I made that decision."

Isn't that kind of always the bargain we're making? We can use someone's work as long as they're willing to let us, but if they change the license, we might not be able to continue using it.

gus_massa · 2 months ago
All MIT/BSD projects are ike that. The mantainer can get up tomorrow and relicence the sofware. (Keeping some attributions if other persons contributed.) You are free to fork the last free version.

With [A]GPL it's only possible if there are no external contributions or everyone agree. Again, you are free to fork the last free version.

burnt-resistor · 2 months ago
No. Things given away are inanimate and lack agency.

Dead Comment

shruubi · 2 months ago
I understand the intention of what the author is trying to achieve, but I think the problem they will run into is how do you define "evil" in a legal document or license? There is a subset of acts and beliefs that wider society has deemed "evil", but I doubt large corporations are actively supporting sexual assault, torture, murder etc. What the author is referring to is things they find morally reprehensible but do not reach the level of the aforementioned acts enough to be expressly illegal and evil (and whether they are or not, IANAL).
yeputons · 2 months ago
See https://news.ycombinator.com/item?id=5138866 - a person gave permission for IBM to "use JSLint for evil".
elmerfud · 2 months ago
It really seems like you just don't want to be open source. That's your choice.