What comes after open source
words.steveklabnik.com
words.steveklabnik.com
What we want is power. In the desktop era, having source code gave us power, so we associated the two and demanded the former - but this obviously hasn't translated to the cloud.
You can't download a Facebook profile and then re-upload it somewhere else and still be connected to all your friends etc. That lock-in gives Facebook power over its users: proportional to how much they need what Facebook gatekeeps (e.g. "all the news about my grandkids is on there").
When I want to stop using something, but I can't, that's power someone holds over me. In my case, that's Google search, GMail, and Android. I actually hate the latter two, and I've tried leaving them all, but here I am. What they've got in common is that they're all protective layers over what I need to stay connected to the outside world despite being highly dysfunctional (i.e. discoverability on the web, email spam, and phone hardware).
Because of this, Google's got me in a way that - because of open source - Microsoft never could. Whatever comes after open source needs to address that power delta directly. We need choice, but also connection.
I think we need more resolution when discussing that part, too.
To me, the main difference between Free Software and Open Source camps is whose freedom they're fighting for. Free Software was always primarily about the freedom of the end users, while Open Source was about the freedom of the developer. That's why OS developers prefer permissive licenses - it's about granting themselves more power, making their lives easier. Free Software requires an ideology buy-in because if you advocate for more software being GPLed, you're making your life as a developer more difficult - you're really fighting for the freedom for your users.
Ironically, and in complete opposition to the author of the discussed article, I used to be strongly in OS camp when I first started programming. I had dreams of selling games, and dealing with GPL dependencies was annoying. But over the years, I learned to appreciate the insight of FSF and pretty much prophetic writings of Stallman, and now I find my beliefs being increasingly aligned with those of FSF. Open Source of today is a paradise for developers, but it mostly serves companies that abuse the end users.
To take that power back means you have to do things yourself, and that means manage your own data. Unfortunately that is too much to ask of the general public, at least with the free tools available today.
People are trading power for convenience, in part because most people don't have the power (know-how and/or time) in the first place.
Think of WordPress -- free software you can either run yourself or pay a company to run for you. If you don't like a particular hosting company, you can click a button to export your data, and upload it with a new host -- or with other software that understands the WordPress export format. All of this data handling is manageable by most non-technical people. The process is hardly any different than downloading an email attachment and sending it to someone else, or uploading it somewhere.
It seems to me the biggest problem is either data not being exportable from these services, or the exported data not being machine-readable. If the format is machine-readable, developers can create alternative software that works with it; managed services can then develop around that software; everyday consumers can eventually end up with more choice, freedom, and power.
This problem is potentially solvable by creating better tools that allow people to have control over their data and still gain the benefits and convenience of the closed functionality on offer today.
Or perhaps the solution, at least in some cases, is at the protocol / standards level -- email is my favorite example of this.
The question is, in the general case, whether development of the tools that are designed to give users all of the power can keep up with that of closed tools managed by for-profit companies? It seems difficult to compete with products that are produced by the likes of FAANG.
Important clarification: this is not about profit vs not-for-profit. It's about control, flexibility, and lock-in.
We've been over this with Microsoft Word making its format difficult to convert - stifling competition.
All these internet giants don't even have a file format for you to try and convert! Brilliant on their part.
Once you have your friend-list and stuff-you-posted as json, go ahead and switch to a different application - it'll be a 2 click import and you're set.
Regarding search and gmail - I fail to see how they have any hold over you, just use duckduckgo and one of the many other email service providers.
The "distributed web/internet" is probably going to be part of the answer, but that ultimately hits up against the ISP and data transport layer.
Part of that can be (in theory) worked around via free "mesh networking" - but that too runs into the ISP (well, backbone) for long-haul traffic.
That could be (in theory) worked around at a country level; I could imagine very wealthy people supporting such open and free mesh networking, and providing free long haul transport networking in some manner. That's probably all a fantasy though - the reality is that there aren't any good solutions for mesh networking between distant points at the moment (hmm - with enough nodes, vehicle-to-vehicle mesh could be a possibility).
Not sure what the real solution is...
What I'm trying to say is that if mesh network is a solution, you have a much bigger problem than you realize.
What's the issue with Search? I see how Gmail and Android can lock you in, but Search? You just have to type a different address.
Which is part of why I think freedom is the wrong goal. You're free to choose between Kodos and Kang, but the ability to choose conveys no power.
But no, it's not the same. DDG uses Google on the backend, to populate their data. And that means there is a time delay between when Google gets the data and when DDG gets the data.
And sometimes you do want the personalization that Google brings to the table, to help you find the answers you're looking for faster. Precisely because DDG doesn't have much information about you, that means their search function won't be able to be as personalized.
DDG is fine as a primary default search engine, but as it stands, you still need to have Google around to provide the data and to provide a backup search engine in case DDG doesn't cut the mustard.
For important recherche-type searches, I always perform an additional Google Search, but then again, the links Google gives you are personalized results which gets in the way of neutral recherche.
I think that public decentralized protocols and platforms can provide a base level of holism without being controlled by individual monopoly technology companies.
There's already something that takes a stab at this, the Linux Foundation's CII Best Practices badge: https://bestpractices.coreinfrastructure.org/
If you run an OSS project, I encourage you to try to get a badge.
Full disclosure: I lead the project. Hopefully it'll be of use anyway :-).
It is an interesting fact the company where the first listed member of the board works for (https://www.oshwa.org/about/board-members/).
"I definitely want someone to be able to modify, fork, and publish better versions of this code. Do I also want them to be able to commercially license their derivatives?"
On one hand, this code was contributed to the public commons and it'd be sleazy for Amazon to come along, improve it, and license it. It seems unfair, and the spectre of giving free labor to innovation-killing, rich entities discourages me from contributing. A GPL license takes care of that concern, and provides a much-needed codification of fairness.
On the other hand, giving people an MIT license and saying "You can do whatever you want! Go nuts! Innovate!" is a boon to creativity. If some startup took my weekend project and made $1 billion off of it, good for them! That's the innovation that open-source is meant to encourage!
When the article mentioned that coders are confused, it hit the nail on the head. We're confused individually and collectively; emotionally and conceptually; theoretically and concretely.
We're looking for a simple answer to the question "Which option do I select from the GitHub license dropdown so I can get back to making value" when there's no simple answer to be found.
Its a boon for one generation of creatives, but then the buck stops there and you are right back to proprietary everything no creativity left for the masses such as on mobile platforms. Copyleft guarantees creativity for all who touch the software, not just the first developer to commercialize it.
> good for them!
Made this comment[1] that Steve even replied to a week ago, and imagine that whole discussion thread inspired this blog post, but its not really just "good for them".
> looking for a simple answer to the question
And have spent going on forty years at it, because there is no simple answer to escape the externalities of writing code. Either nobody uses your code and it doesn't matter, or somebody uses your code and it does matter. What you write, how you license it, how you distribute and produce it, will all matter if it gets used.
The fallacy is that the permissive community wants to see it used at any cost. To make the code matter, even if it has a negative impact - on the developer ecosystem, on the ecosystem it works in, or on society at large. But at the end of the day, FAANG is entirely built on top of both free and open source software, they represent combined the greatest concentration of wealth in the history of the free world, and you can't stay naive enough to think the code you give away is simply "so people will use it" as the be all and end all forever.
It's part of it! The original genesis of these ideas was a comment I made on HN back in 2017. It took me a while to sort out some of my thinking here, and that post was me trying to set up this one, and that conversation certainly played a part.
The other thing is you can grant exceptions to people if they have an unanticipated need (i.e., mixing your code with other free software code with incompatible licenses).
If you are the sole contributor, no issue there.
But if you start receiving contributions from outside (Pull Requests on Github for example), then part of the code is owned by the external contributor.
It means that if you want to change the license, either you made the external contributors sign some (digital) papers stating they give away ownership of their contributions, or you chase down each individual contributors and manage to make them agree to the license change, or you remove any code from external contributors.
The first is doable but is a bit of of barrier to external contributions, the middle one can work on a small project with few external contributors, but is a bit risky (the external contributor can say no, or more likely be difficult to contact), the later is somewhat impractical.
Changing the license of a project is not impossible, but it can be somewhat of a nightmare, specially if there is a lot of external contributors.
If it's a kid in his basement with an amazing idea, absolutely. I'll watch them ring the closing bell at the NASDAQ from my couch and feel nothing but pride.
If it's Google or Amazon... maybe still yes, but less so? It'd depend on my subjective perception of the net benefits to societal innovation, which is 1) more wishy-washy-subjective than I'm comfortable with, and 2) seems like it would make for a really bad license: "MIT-Unless-I-Dont-Like-You"
https://creativecommons.org/faq/#can-i-apply-a-creative-comm...
"We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available."
How does attribution-sharealike-noncommercial fit this case?
It sounds like he doesn't mind if some people (small startups) make money using his project, he just doesn't want anyone (large companies) to be able to.
1) Sometimes it is hard to tell, if an entity is regarded to be commercial or not. Is a hacker, who receives ad-money and donations a commercial entity? What about a university? It's unclear and therefore many won't touch your code.
2) The license may not be fully compatible with, MIT, BSD, Apache, etc license which also hinders integration.
Anyway, I would also welcome a license opening up your code for hackers and non-profits alike... Maybe someone knows?
I agree that wheel reinvention is an issue that needs addressing but not to the extent as you describe (a "plague").
I also believe this comment misunderstands why it happens. As it stands today, it is a feature, not a bug. You don't see reinvention a lot in traditional engineering disciplines because you have something concrete and functional that takes years of research and hours of construction. Any hacker with a laptop can pick up a language and start building stuff. This ease of access is what creates the "wheel reinvention" situation, that and an endless amount of choices and a limited amount of discoverability of what is out there. Exposure to history and philosophy of software would do nothing to address that.
Finally, reinvention is seen as virtue in this industry, not a plague. To some degree, I agree: software is never complete. And even if you think so, the software built underneath your software may change, thus changing your software. Some level of reinvention may come with new considerations that were not considerations of the past.
It would be nice to see something like that. I'm not sure it will happen.
Our human society in general - for some reason - has deemed that the history of "computation" - or however you want to put it...isn't important.
Think about how many automobile museums there are in the world - or google it, whatever. Both public and private. You probably have several where you live - especially if you live in the United States (less so in Europe, even less elsewhere).
Or museums about aircraft and aerospace - another technology that has fundamentally changed human society.
Then compare those to the number of "computer history" museums.
Despite the known fact that the computer has fundamentally changed our society in ways that are still not completely clear, and ongoing - we have done so little to preserve that history.
Software is a large part of that as well...we have systematically destroyed, or have left to "bitrot" because "proprietary software" in some back room (or worse, in an unknown location because a company went out of business, or was purchased and re-purchased, etc).
For instance - there are several Cray supercomputers out there - in private ownership and in museums - but have you ever tried to find the OS software or documentation in order to actually make one run? I'm not going to say it's impossible to find, but I wouldn't call it easy, either (a great resource for info on these old machines and software is the bitsavers archive).
We ignore this history at our peril; there are numerous cases on both the hardware and software side of things of "reinventing the wheel" because this history isn't widely known or understood. In some cases, it's not even avoidable because the information that would prevent it is either not easily or widely available - or is non-existant period! In other cases, it may be available, but it just isn't widely known about or taught.
I don't see this changing any time soon, unfortunately...
That said, still in the camp of "nothing is wrong," I think. It is a tough pill to swallow that companies that build around open source software are fundamentally vulnerable, but perhaps it's time to swallow. Open Source has never been healthier even ignoring those contributions.
If X manages to corner Y into a proprietary license, does open source win or lose? I won't name names but I used to use a project that went open core and the "open core" part of it became gradually more useless over time to the point where many users just switched off. I think what needs to be established is that what's good for companies trying to monetize OSS is not good for OSS.
There's plenty of other models for OSS that work. I'm fond of Patreon as a new monetization model, for example. Won't exactly get you rich, but if that's ever the point of OSS, then it really is dead.
We probably won't live in a future where everything is OSS, but we live in a present with an amazing amount of excellent OSS and I'm willing to take that personally.
I think the certification idea is interesting, but I definitely need to think about it a lot more. While I personally don't mind where OSS is, I also would not mind new movements, either.
I do think that open source is working. The question is more of, who is it working for, and why? Could it be made to work for more people? Is it working in the way we want it to work?
For example, your comment is framed about the health of Open Source itself. I see a lot more developers concerned about the health (in many senses) of the developers who are working on open source, over the health of the idea of open source in and of itself. They're also concerned about corporate control (in a steering sense more than a "total control" sense) over open source and platforms that are open source.
Can today's open source sustain itself? Sure, probably. Lots of things that are not fundamentally sustainable manage to last for quite a while. But I do think people are wanting something better, even if they're not totally sure what that is or how to get it. I mean, I don't fully know either :)
> Even if you are the kind of person who thinks boycotts work, there just aren’t enough free software diehards to form a large enough boycott. And even then, you’d want to do the boycott together, simultaneously, to send the message.
A licensing regime is the only way I know to _prevent_ someone else from taking your software and doing whatever they want with it. So without a licensing regime, they'd do that, it just wouldn't be certified.
The whole idea of certification relies on enough people insisting on using certified software. And I think the same reasons that didn't work, as Klabnik explained, for Libre vs OSI, it's not going to work for certification. In the end, people will use whatever is cheapest/easiest (and legal, or perceived-to-be-low-risk-for-them illegal) regardless.
I do see the issue's he's talking about and think they are real. I don't see any solutions. (I also think he conveniently avoided one of the reasons we're seeing license/open source splintering -- because of attempts to find ways to _make a profit_ off open source. See the Amazon/ElasticSearch dispute. This is a real thing going on in the landscape he's talking about, with maybe more impact than the ideological concerns he talks about, but is inconvenient for what he wants to talk about. I still have no solutions to it.)
Yep, I didn't want to get into the details of what people are caring about here, because I don't think it's necessary to make the broader point. And I also mostly want to get people thinking about this, and priming them on specific things isn't as useful as just providing broad strokes.
I do think that the relationship between capital and labor is a huge aspect here, along with the cycle of "thick client, thin client, thick client" that we currently see with the move to the cloud. As you say, those are other essays :)
There were ways people made a living while producing libre/open source for the last 30ish years, that also produced quality, useful, sustainable software.
I think those ways have broken down, and no longer do that. I could get into the details of what I think those ways were and why they have broken down (I tried to in an HN comment on one of the posts on ElasticSearch, the comment replies did not express consensus with me :) But it includes that the software we want now is 'more expensive' to produce, as well as increased 'rationality' from employers of developers). But regardless of the details, I think things like the ElasticSearch thing (there are many more examples; the whole variety of "open core" software) suggest it's probably happening.
I think that's probably more fundamental to the splits around open source than ideological predilections or beliefs about "fairness", in that any solutions or succesful evolutions of "how open source-ish is done" will have to take account of them, not just ideological predilections. Will have to provide an ecology/economy where people can make a living while producing quality useful sustainable "open source-ish" one way or another. I see no clear solutions regardless.
1. Attributes this https://fsfe.org/news/2019/news-20190326-01.en.html to the fsf. That is not the fsf, but the fsfe, which is independent from fsf.
2. I don't think that fsfe press release "supports expanding copyright".
3. "The FSF didn’t move to GitHub because GitHub is proprietary, and they see that as inconsistent with their values." Thats not correct. For starters, see https://www.gnu.org/software/repo-criteria.en.html
4. "If a company were to add a proprietary feature to an open source project, yet pays five employees to develop the open source part further, the FSF sees this as a tragedy." Wrong. First, FSF accepts donations from proprietary software companies, so it's participating in in a tragedy? FSF does not say things like: "The FSF believe because your born, you're going to use nonfree software, which is bad, so being born is a tragedy."
5. Look at what fsf and osi say about "open source" vs "free software" https://www.gnu.org/philosophy/open-source-misses-the-point...., https://opensource.org/faq, and neither say that permissive or copyleft being any part of the of it, so its definitely not the main thing like the article describes.
I didn't get into it, but I do think that the user/developer distinction plays a part here. That is, one way to think about the Free Software/Open Source divide is that copyleft ensures freedoms for users at the expense of restricting developers, and permissive licenses ensure freedoms for developers at the expense of restricting users. As developers gained some power, we directed it towards helping ourselves.
I don't think that's the whole story, exactly, but I think it's an interesting way to think about it.
Traditionally the FSF advocate will say something here about end users hiring developers to modify software for them, but in reality that’s economically ridiculous.
Non-developers take advantage of it by hiring a developer; it's essentially the right to take your software to be serviced by someone other than the seller.
> Traditionally the FSF advocate will say something here about end users hiring developers to modify software for them, but in reality that’s economically ridiculous.
It's perhaps ridiculous for non-wealthy individual end-users for software that isn't integral to a profit-making business, but it's quite common for major open source projects to see most of their contributions being from institutional end-users who have hired developers to address their own needs with the software.
Why is it ridiculous?
Sure, for the far right of the bell curve, the “end users” who are owners of medium-sized businesses, it becomes viable. But I’m talking about the end users who buy Microsoft Office Home Edition.
The basic premise is relatively simple - with no insight in something very complex, you're at the mercy of the creators of that complexity.
Doesn't that sounds nice, as a developer? It's a power struggle, really.
Regarding certification: I think you have this situation backwards. Developers will easily see through and gravitate to the project that's more friendly and open. The very examples you mention - people see through that and the companies end up getting negative PR in developer circles, despite releasing the code.
Those who have a problem in this game is again the users - they don't understand what's going on, but they might have lost a great deal of the power that the open source was supposed to give back to them, it's locked in behind the wall that the code is thrown over.
I think there are two errors there: one is conflating the Free Software / Open Source divide (which is less about licenses and more about consequentialist vs. deontological justification for desire for licenses with particular features) with the copyleft/permissive divide, and the other is conflating direct licensees with “developers” and indirect downstream licensees with “users”. (It's true that the GPLv3 contains specific protection for certain users qua users via the anti-TiVoization provisions, but that's not true of copyleft licenses generally.)
Free software is not about licenses; they're a very limited means to an end. If we didn't have copyright, some other means would be needed.
For freedom to spread, free software has to become faster, prettier, more convenient, and more intuitive than proprietary software. I would go further than this and say that the distinction between developers and users has to become fuzzier, so that anyone can edit software without needing to be a "developer".
Sadly, developers love their arcane tools because it makes them feel elite. And the FSF / GNU project participates in this elitism by continuing to promote such arcane tools. Software like GNU Emacs only meets the absolute bare minimum of "free software"; it empowers hackers but it doesn't empower the general public.
The next movement, whatever it will be called, needs to embrace open source licensing, and open process, and end user empowerment.
Most users of any popular piece of libre software don't contribute back, whether it's bug reports or patches. Even if it's targeted at developers, most don't do it. There is certainly value in community practices that encourage productivity and make it easy for individuals to get into. But they are only means to an end, it's not the end itself. For me, users should be at the center, not the developers.
If it's truly about the users, it has to come from users, not developers.
Did I even care that the source code was visible? I have yet to contribute a patch to any of my favorite projects: Linux, Apache, PostgreSQL. A big reason is that I don't even know C or C++. But yes, come to think of it, the source-code publicity gives me comfort. At least some people are out there checking for bugs, backdoors, etc. (Right?)
Copyleft always struck me as a little weird. This article has helped me realize why. Copyleft is still based on the idea of intellectual property, and I don't believe in intellectual property. If we translate the phrase from its Latinate words to Old English, its meaning, as usual, becomes clearer: thought ownership.
In my own little projects on Github, I usually ended up going with Public Domain. It accomplishes what I want: that I and others can keep using what I wrote free of charge, that it can remain visible forever so that others might learn from and build upon it. I don't really care if a company wraps it in their little package and never lets anyone know. Also, being prior art, it should prevent someone from getting a patent on it.
You should consider something like CC0, given that public domain does not exist in many important jurisdictions. That said, the OSI hasn't approved it for interesting reasons https://wiki.creativecommons.org/wiki/CC0_FAQ#May_I_apply_CC...
The example given is GitHub versus open source bug trackers. You didn't come out and say this directly Steve, but isn't this basically flirting with the conclusion that developers tend to prefer proprietary platforms? You mentioned that the numbers speak for themselves, and you personally shifted your ideology from the Free Software Movement.
Couple this with the rise of SaaS as a business model, and it seems like a lot of the tension here is related to the way that proprietary platforms focus on production, while licenses themselves focus on distribution.
Seems like I'm on the same page with you then. I don't really see a way to codify all of the peripheral open source associations in a legal document. A lot of it is very...ad hoc.
> but isn't this basically flirting with the conclusion that developers tend to prefer proprietary platforms?
I don't think they prefer proprietary platforms, I think they prefer good platforms, and will put that desire over "is it open source or not." But, I think you also can't split that by "platform", that is, in some areas, the open source aspect wins out. There are also hybrid platforms, with some open-ness, some close-ness. I think ultimately my point is "most developers are not free software absolutists."
"but what people care about most today is about the production of software. Software licences regulate distribution, but cannot regulate production. (technically they can, but practically, they can’t. I get into this below.)"
Interestingly, I did not see the part where he really gets into this. Speaking of history, I think one thing is forgotten here: before open source, how did you produce software?? By buying closed source software, of course! So, this is the catch-22. You claim they care about the production of software, but without open source tools, you would then be at the mercy of closed source systems in order to build your software. I am not saying it is bad, but I would have never really gotten into software without GNU... Turbo-C from Mix software was cheap, but the others were too far out of reach. One day I woke up and the tools were too expensive. I don't think we want to go back there... to the same place our phones are in now.
I think - I'm not sure - that developers have "forgotten" that they are users, too.
It's probably also an age-related thing. There's a large group of developers who don't remember - they weren't even born yet! - how software used to be in the 1970s and 80s. How everything was extremely proprietary - and costly to purchase. Heck, just a simple C compiler could set you back hundreds or thousands of dollars (and we're talking dollars back then - not today's).
They also don't know or remember times of a company going under, and taking the support of that proprietary software with them, and the mad (and expensive) scramble to find something else, depending on what the software was for. They never experienced Borland going under, as developers (or any number of other development tools companies for that matter - Lattice C, anyone?). Or the number of companies that supplied software to businesses going under, or being acquired (usually by CA or IBM - with varying levels of "continued support").
They forgot - or never understood - why Stallman created the FSF and the GPL in the first place. Recent events, and probably future ones unfortunately, will likely make them recall their history, hopefully.
Me, personally, as a developer, always liked the GPL. It isn't great for a business; it makes it difficult to sell such software, because you have to provide the source code - but from a developer perspective, I've always looked at it as the currency being paid as being the source code.
In other words, by using the GPL for my code, I'm saying "if you use my code, and develop something, and distribute it - I want to be paid". Other licenses, they don't have to do anything - not even a mention in some cases (outside of the BSD - which they can then easily bury elsewhere). But with the GPL - they do have to pay you, as the developer, something in return: They have to pay you with source code.
Source code won't feed you. It won't keep the lights on, or a roof over your head. However, as a software developer, being paid in source code is valuable. It means that (in theory) my code can be made more useful for others, that those additions and changes can live on, and that the product - in theory - won't go away if or when I go away, or the company I am a part of goes away. The code - and the product it is - will remain available. The legacy of it can remain. It won't be buried.
To me, that's valuable - in some ways, more so than cash. Maybe because source code is what we make; it's our legacy - the artifact and mark we leave behind. In a way, it's our art. We want it to continue to exist, for people to look at it and hopefully enjoy it, to know who created it.
With both licensing (and to an extent, DRM, which is related) getting in the way - it is possible to erase this legacy from the society.
To end this - I've found great pleasure in unearthing very old code from various places and "things" on the internet; most of the time, it's been a private endeavor, but at some point I want to get the code back out for general use (that is, I want the code to live on). In some cases, I've found this code in weird scanned research papers from the 1960s and 70s, dealing with strange subjects (for instance, I found some stuff on 3D programming in BASIC in a set of papers by someone at the USGS in the 1970s). Technically, the code isn't "open source" (I'm not sure what it is, since it was paid with tax dollars - probably not public domain, but I don't know) - but I think the author and their code should be recognized, as a contribution to the history of computing.
"following the letter, but not the spirit,"
I'm unhappy with the GPL because companies do the bare minimum to comply, and sometimes make their forks difficult to even find.
And freedom to me means freedom to have propriety forks, because either your downstream fork plans to last as long as upstream, in which case diverging from upstream makes rebasing more and more costly over time (incentivising you to minimize that divergence as that's less work/cost in terms of maintainership), or you have a very shortlived product that won't be relevant for long.
And the point about paying developers to still contribute to upstream even when downstream has propriety bits is lost in a lot of people.
Anyone else get the feeling they're being manipulated by a campaign?
Also, thank you for writing this. It is fascinating.
This is wrong. Doing this forces you to confront the deficiencies of free software, the lack of available free software, and strongly encourages you to support development of alternatives. Just like being vegan encourages the growth of a market for vegan products.
This happens in all manner of things - politics, old school regular religions, intellectualism, scientific literacy, rationalism - for the ideas to spread you need prophets and priests to spread the word and adherents to project legitimacy to attract converts. But pretty much any belief system, followed dogmatically, is not for your own personal empowerment - its self sacrifice for the cause.
Apple in 1998 definitely weighed their options between writing their own proprietary browser engine vs forking a GPL one. To this day almost all free software hardware device support is exclusively due to how second class proprietary drivers play in the Linux driver ecosystem. Before the prevalence of GCC compilers were one of the deepest and most tightly protected proprietary secrets of corporations.
And none of that would have happened with permissive licenses because it required compulsory source disclosure to force businesses to contribute back. The alternative is what we see Sony do with their Playstation OSes - they built the PS3 and PS4 OS off FreeBSD, but neither contribute code back to said projects, provide any sponsorship or support (dozens of companies do, but the one making grotesque profits by exploiting user freedom isn't), and use an open source product to cripple fully functional computers with unmodifiable proprietary operating systems.
We would absolutely be in the PS4 world in regards to almost all software if the free software movement didn't push its dogma in the 90s.
Free Software works to protect the freedom of individuals to use software that they own. It doesn't work as a magic way of making VCs money by companies giving server-side code away for free. The former is a politics, the latter is not even a religion. But sift through all the anecdotes and repeating of old Microsoft slurs against Free Software and it is clear that it is losing that religion that is behind the current debates.
My comment was focused on this moral aspect because that's the part of veganism that I was a part of and are familiar with, but I don't think that all vegans are vegans for moral reasons, nor do I think that nobody should be vegan.
> dismiss the very real need of people (and companies) to be able to retain control of their own devices
I'm not dismissing that at all, in fact, I am arguing that it doesn't actually enable you to retain control. The AGPL is an acknowledgement that the GPL does not go far enough in doing that today, and its failure to gain traction demonstrates that it's not a tactic that works for this purpose. We need new strategies and tactics.
The AGPL does have traction, just not in the places you might expect to look. I think that's a red herring anyway because it is indeed a niche license, useful specifically for free software communities where growth and development focused around a network API is happening actively and rapidly, and there is active worry that a bad actor could move in and try to take over the network. This is absolutely not the only issue threatening free software communities currently because not all of them fit that description, so I see why it is quite common for people to dismiss the AGPL. But know that it may just not be what is correct for your use case, and that for many communities a lot of other licenses are still adequate, including the non-copyleft licenses that you have mentioned are gaining a lot of traction due to their popularity within proprietary, closed-source companies.
I have heard a lot of rambling recently about "post-open source" and "post-free software" movements lately but I still think it's jumping the gun. The fact that it's still so difficult to find working libre drivers for wifi chips (and a lot of other pieces of hardware) is proof to me that we still have a lot of work to do, not a convenient excuse to dismiss things entirely and stop caring.
I would really have preferred if some other term than "open source" would have been used to refer this wider concept of openess, in this paragraph and the ones that follow. The article itself establishes that open source is all about license, and thus argues it to be insufficient for todays environment.
I doubt that a scheme that would take this sort of thing into account would be popular, for the same reasons why licenses that try to do that never became popular with the FOSS crowd.
> I have a hard time imagining a way of enforcing good behavior that doesn't hinge on restricting some parties' ability to use the software.
Absolutely, but I think this problem is inherent. There is no such thing as "no restrictions," so doing so is impossible.
Real-world voluntary organizations like grocery co-ops have long operated on this model, and some software projects, notably Debian, actually have constitutions. The Debian model, however, doesn't place any obligations on Debian's users, doesn't even acknowledge their existence. Their specific constitution has a lot of other weaknesses in terms of its ability to generalize, but the existence of the constitution seems like a very good idea.
I get in the old days that builders/users were the same people and sharing OS code made sense but those days are long gone.
you don't have a problem with licences - you have a problem with an economy that expects a major _critical_ chunk of it to work for free. well it aint me, it aint me - i aint no fortunate one, no...
As long as massive companies like Google, Facebook, and Apple harness pay LESS taxes than you or I and harness 99% of the economic value we're facing an uphill battle.
To me it seems this way; there are pros and cons to unionizing - while there hasn't been a formal discussion, obviously, developers have seemed to have selected for "no unionizing".
I recall there being a call for a union and efforts toward this back in 1998 or thereabouts; 20 years ago roughly. It died out rather rapidly. Maybe related to the dot-com implosion, I don't know.
But...something is going to need to be done. We are rapidly either heading toward needing a union, or we'll be forced to be certified and/or licensed, much in the same way actual engineers are. Maybe a combo of those things.
We are seeing software being integrated more and more into devices and machines that can and do put people into life threatening situations. Self-driving vehicles, drive-by-wire controls, and other things - while none not actually "new" - have been failing in ways that are much more public than in the past, and has caused discussion on the idea of "who is at fault".
Companies are ultimately going to want to shift the burden from them, to their employees. I'm honestly surprised it's taken this long - and the fact that it still hasn't occurred ; I'm not sure why that is.
Part of it, I believe, revolves around salary/pay levels - there is a very large gap between the lowest and highest; this isn't completely based on geographical location, though the higher pay does skew toward SV of course.
Most developers, though, are fine with this disparity - that might be a "temporarily embarrassed millionaire" problem, but for those willing to take the risks and chances, and in some cases move long distances - if they are good, they really can boost their salary quite a bit if they happen to join up with the right company, at the right time.
I think part of it also has to do with certification; would a union require it? Would we all have to get or have either a CS degree, and/or some kind of actual certification from some standards body? Who would those be? IEEE? ACM? Microsoft? Red Hat? All of the above?
What about those of us who've been doing this for 20+ years, and only have a high school diploma in some cases, yet earn 6 figures at a FAANG or such? Do we grandfather those people in, or do they find themselves out of work (maybe with a stipend from the union?) until they get their certification?
Those are just a few possible questions - maybe reasons - that could be considered "anti-union sentiment".
I think one way or the other, though, we're (as a group) are going to be forced into either a union and/or certification measures, much like professional engineers, whether we like it or not.
Probably sooner than we think, mostly due to the devices and such you mention, and their very public problems being aired. The question is only whether we'll have any real input into how it'll look, and right now, we seem to be collectively ignoring it.
What I find amazing is that it hasn't happened already; history-wise, one would have thought that the whole THERAC-25 thing would have forced it, but somehow it didn't.
The union shines when it can do collective bargaining and ensure minimum salary benefits for certain roles. Certification could be offered for very specialized roles as subject matter experts join and build a curriculum.
- - - -
Two main reasons to touch a computer: study formal systems, create wealth.
Mathematicians learned (in the Renaissance) to share their work. So if all you want to do is study the nature of formal systems you're good to go. (I can vouch for this. You don't need money to learn (although it helps.) Personally, I was more interested in the former and only "cashed in" later in life when being a homeless scholar got old.)
If you want to produce wealth using automation, there are two main strategies: maximize wealth, extract "rent".
The latter is relatively familiar: e.g. keep the generator and sell the electricity. In computers it's the "smart phone" that (while ostensible a portable computer) functions as a kind of shopping mall and arcade: the thing is designed to get your money. (It's impressive! People line up at the Apple store to be told how much money to put in the box to make the sacred artifact work again. No wonder Apple is sitting on a huge hoard of cash.)
The former, maximize wealth, is a little more obscure. Bucky Fuller is perhaps the best exemplar of the concept. In a nutshell, we have the technology already to create a "utopian" economic reality. Everybody could have the food, shelter, medical care, etc. to live a decent life, if only we applied the technology we already have to our basic needs. We can't solve every problem through tech, but we can and should solve the problems that are in reach.
From the POV of someone trying to maximize humanity's total wealth, the Free (copyleft) licenses are a tool, as steveklabnik says:
> The FSF sees copyleft, and therefore copyright, as a legal tool to enforce software freedom.
But "software freedom" is just an obvious corollary to building the automation feedback loop to achieve economic phase transition to a post-scarcity regime.
- - - -
As for how software should be produced going forward, first, there should be a general contraction in the amount of code in the world and of the number of people writing it. The current situation is a kind of "Thundering Herd" attack on human attention and memory.
To support contraction you need a formalism (notation or language) that makes it easy. Most of the necessary research has already been accomplished. The limiting factor is uptake. I suspect that it would be a thankless task, an uphill battle, to try to get existing computer industry to adopt, so that suggests that you have to take it directly to consumers (and businesses.) Just bypass everything.
When you have competition, you can pick a different market or you can develop a compelling alternative. In the spirit of "Commoditize Your Complement", the corporate competition realized that the value proposition these days is not really in operating systems and toolchains anymore, so they're commodify infrastructure GPL code - with MIT/BSD on the client side, e.g. clang and Fuchsia for GCC and Linux, and GPL on the server side, e.g. Amazon adding missing features to Elasticsearch and Microsoft's supporting server-side Linux.
The libre-minded community can fight this commodification, but it's a lost battle. As more infrastructure becomes a commodity, competition for value-add needs to move up the stack. Google, Amazon and Microsoft are now competing in providing computing services. Facebook doesn't mind giving away tons of server-side frameworks, as long as they can continue to harvest our attention. Google and Apple are providing value in integration of devices, so their marketplaces continue to gain market share. So the question is, with operating systems being a lost cause, where can the community still compete?
I can think of only a few:
* Privacy: User data is part of companies' competitive advantage, so they're naturally disadvantaged in this area. Hasn't traditionally been valued highly by the masses though.
* Price: Displacing expensive competition works for professional creative software such as as Krita or Blender. Doesn't generally work for cheap, user-data-financed apps though, or for operating systems. Attempts to incentivize hardware vendors with a lack of license fees proved ineffective due to the existing popularity of proprietary alternatives and the extra attention/volume that comes with it.
* Convenience / UX: Not popping up annoying "Subscribe!!" dialogs has a certain value, although this may be neutralized by the extra attention that email subscriptions provide to companies, and by the possibilities that come with being able to promote only a single, well-integrated product by the same company.
* Interoperability: Would only be a competitive advantage if community-controlled software had a market share that's large enough to single out non-standardized solutions such as Chromecast or anything that Apple does. Generally only valued once people are already locked in and want out, so doesn't help much.
* Small scale / not profitable: Companies can't compete on stuff that they won't make money on. So far, this has been mitigated by monetizing a lack of otherwise unprofitable products via collecting user data. If the targeted market is small enough though, data-supported monetization may still not pay off while hobbyists aren't constrained by such concerns. Good starting point, but becomes less of an advantage as a project gets larger / more useful to more people. I'd include decentralization initiatives in this category, except that if we want something to be a standard protocol then there should also be open specifications and a permissively-licensed reference implementation.
* Existing technological advantage: It looks to me like Linux is pretty much the only piece of GPL software that has no available licensable alternative and can't feasibly be replaced by a well-funded upstart. (Even so, Fuchsia is coming and it won't be pretty for future hardware support of Free operating systems.)
Anything that doesn't provide a competitive advantage like one or more of the above won't be competitive with corporate software in the long run. If it can't or doesn't have to compete, whether you license it as (A)GPL doesn't matter, so it may as well be MIT/BSD in many cases. But maybe not in all cases!
I pulled a 5-year-old desktop computer out of storage, bought a new $50 hard drive for it, put my resume on Craigslist (of all places), installed Ruby on Rails and all my development tools, and within two weeks I had a job working from home for $40 an hour. I didn't have to re-certify, renew any licenses, or pay anyone any fees of any kind. I didn't lose access to any tools I relied on in my previous job. My only expense for maintaining my employability was $50. I have a four-year degree only.
I don't know of any other industry where that's possible, and I don't know if it's possible to do that in this industry anymore. I know it is because of the hard work of the open source movement. I've been thinking a lot about how to preserve that level of economic empowerment in software. I don't think the answer is in licenses, but in something like a union (although you are right in that most developers are rabidly anti-union). Perhaps an alternative corporate structure would have the same result, and that's why I decided to start the first for-profit software collective.
I like the idea of a software union and would love to flesh that out. Its been well documented that the FANNG corps have been suppressing wages for several years. Software is eating the world and if we have a role in that creation we should have a larger portion of the benefits.
I'll go on the record saying I'm pro dev union. Even if its just a glorified professional organization. I'd love to hear the holes in the argument.
The corporations are financially motivated to prevent unionization. If you want a piece of the future you have to be just as savvy.
One tricky bit is if unionizing just causes a massive exodus of development to offshore. Thoughts on that?
You can read the thread and draw your own conclusions. My impression is taken from reading a number of these threads over years; I could be wrong!
I don't like when corporations collude to artificially suppress wages either. Or when information asymmetry is used to keep an engineer's salary low or prevent negotiating higher salaries.
I'll read that discussion.
https://news.ycombinator.com/item?id=13564440
Arguments often encountered:
* Compensation/mobility is good enough not to need unions. * Workers don't have enough leverage to do anything anyway. * Unions restrict you in undesirable ways. * Unions are shady and corrupt.
How's the job search going?
It's going well! Hope to have what's next sorted this week :) Stay tuned!
[citation needed]
What if the mild inconvenience encourages people to write a free driver or donate to the developers? It happens all the time.
> and only harms yourself
...or it encourages me to work on an alternative. I often contribute to GPL software. As a side effect, it really improved my skill and career.
I am a part of a large GPL open source project, but am not sure that the GPL made a big difference there, since "distribution" is a loophole large enough to drive a truck through. If you extend & modify software just for your site / your client's site, you have no obligations.
Conceptually, a great followup article is Kyle E. Mitchell's "Unhappy Coincidences", published last year: https://writing.kemitchell.com/2018/08/28/Unhappy-Coincidenc...
Nowadays, I gravitate towards permissive licenses because I feel that people and companies contribute largely out of self interest, not because a license compels them to.
(Thank you for linking to this site — it is truly fascinating Also thank you to Steve for starting a great and timely debate.)
For example, if you use an AGPL CMS to power your website, you now need to open source the entire thing.
So, I'm not saying that it is necessary to have a stronger copyleft license, I am saying that the existing copyleft license was successful because people were able to often ignore it.
A lot of energy has been spent discussing the reach of GPL's virality, and its loopholes. When it comes to copyleft, the Mozilla Public License 2.0 has a much saner approach by avoiding virality all together. Share changes to the code you received, keep the rest.
But I'd disagree with you here:
> I believe that this focus on process is why the GNU project has fallen out of favor as well. The tools that the GNU project uses to develop its Free Software are arcane, ugly, and unique to them.
GNU and other old-school projects (Perl, Python) are the only large Free Software or Open Source efforts to which I would consider trying to contribute. They have spent years building reputations and creating communities. I don't care whether I submit a bug or patch through email or GitHub, but I do care whether or not my effort will have a real effect.
Funny enough, I tried to submit a patch to make a while back, and got one reply where the maintainer misunderstood me, I tried to provide clarification, and then radio silence for the past few years. Whereas I've gotten thousands upon thousands of patches through on Github. I agree with you that I care most about impact, but I've had much more impact via GitHub than via Savannah.
> "I used to see Stallman lecture."
I see this more often. Is this somehow to indicate the level of engagement you felt? Because Free Software is about the 4 software freedoms, everything else is maybe your own romanticised version of what that should mean, and you somehow felt let down by those expectations. And that's regrettable, but ultimately very much your own experience, and mentioning it lends no credence to any argument.
> I started noticing that these beliefs weren’t really actually helpful, and were frankly, mostly harmful.
No, not "these beliefs", your beliefs, as reality likely didn't quite pan out as you expected it would.
> even though I was a passionate Free Software advocate, I found myself near-exclusively building Open Source software.
Maybe you're not the best person to write about "Free Software" vs "Open Source", or what would or should come "after Open Source".