> It’s deeply unfortunate that so many developers still believe in the magical powers of copyleft licenses in spite of decades of evidence of their failure. They have somehow missed the fact that a company that pays the majority of developers who understand a non-trivial codebase can exercise control and that forking is rarely feasible unless those developers choose to join the fork (AGPLv3 is increasingly the go-to license for companies that want to exert control over their ecosystem). They have missed the fact that complex legal documents favour people with expensive lawyers and so big companies can routinely get away with things that small companies wouldn’t do because they can’t afford the legal fees, so copyleft favours monopolies. They have missed the fact that contracts don’t ever enforce behaviour, they codify agreed behaviour. If you try to enforce behaviour via contracts then humans immediately start looking for loopholes and you cannot write a loophole-free contract.
and later:
> A true free software system is one that empowers users. This means that it will expose every aspect of the system to end-user modification (this is my main motivator for CHERI: to provide the lowest-level building block for doing this safely and securely). In such a world, users will extend things naturally and will want to share some of their extensions for interoperability. In a proprietary software world, you have three categories of thing:
> Programs, which are siloed worlds. Plugins, which have access to some low-level details of the program and may extend it, but only in ways blessed by the owners of the program. Documents, which are created by users. They may embed scripts to extend the program, but in a very narrow way. In a Free Software system, there is no such distinction. An end user can create a document that extends the system in arbitrary ways. But in a GPL’d world, that is hard because a document is, due to the fact everything in the program is exposed, a derived work of the program. Any document that extends a program is covered by the terms of the GPL. You can’t share it under an NDA and end users have a bunch of other legal restrictions that they must abide by. Rather than creating incentives that encourage people to extend the system and share their improvements, you’ve created legal liability for them if they do.
> We had problems with QEMU being GPL’d because we couldn’t share QEMU implementations of unreleased Arm specs where the spec was under NDA without violating the GPL. If those limitations applied to everything created by a normal user, it would be a disaster. And you can’t say ‘documents are different, they are outputs of the program and so not covered by the GPL’ without also saying ‘documents do not have the ability to arbitrarily extend the underlying system’, which means you are throwing away the thing that should be the key selling point of Free Software: it works for you, it is easy to modify it to make it do what you want, not what some corporation thinks they can use to best extract rent from you.
> Things like the LGPL create a two worlds problem. If you write code in a program under the GPL, it’s extended and refactored by other people, and then after a while it’s generic enough that it belongs in a library, you need everyone to agree to change the license. And this mindset comes from internalising software development models that came from proprietary software.
> Conway’s Law talks about systems reflecting the structure of the org chart, but it goes deeper. Program structures reflect the socioeconomic system that is developing them. Free Software will always struggle as an idea as long as it is building systems that reflect the COTS proprietary software models of how software works because those models are explicitly designed to empower the owners at the expense of the users. Telling users ‘we grant you freedom to give up control to this priesthood of programmers instead of to this corporation’ is not a selling point for most users (it can be for governments and big companies, who can afford to employ the priests).
> If you really want Free Software to be the dominant model for how computers work (I do) then you need to build the kinds of things that cannot be done in the proprietary world because they give away too much control and are hard to monetise via rent extraction. This means modular systems where each module is understandable by a single person, end-user programming systems that allow real changes to the underlying systems, an easy flow of code between things users write and the underlying system (in both directions), and so on.
@feld This discussion is kind of pointless when corporations can just generate code using LLMs trained on open source stuff to circumvent copyright. :blobfoxgooglytrash: