Is "source available" that bad?
gavinhoward.com
gavinhoward.com
I think the main benefit is community involvement in submitting bugs, contributing changes, writing docs, and being part of the project. Even if contributors do the main work, this long tail of user contribution is so important.
With source available, I’m not contributing any of my work toward a proprietary project. I’m happy to spend hours researching and writing up a bug if my work goes toward a common good. Not so much if it just funds some corporation with free labor.
I think it’s a distraction to try to force this into a good/bad dichotomy. I don’t hear anyone saying that “source available” is bad. Just that it’s different than FOSS. There’s nothing wrong with selling software. I just think it’s inferior to FOSS for producing high quality software.
And pretty much every successful FOSS project accepts bug reports from users. So that’s still a contribution even though it’s not source code.
So does a SAMS community. They just can't turn it commercial (for a noncommercial license), or they have to wait for full FOSS (for a delayed FOSS license), etc.
> And pretty much every successful FOSS project accepts bug reports from users. So that’s still a contribution even though it’s not source code.
That is still possible with SAMS.
I can “fork” windows. I just can’t do anything with it without paying Microsoft.
And I can also spend effort to write up a detailed report to Microsoft or to a SAMS project. But I won’t, because I don’t like doing free labor for corporations.
You just have to keep the fork free of money.
The only way you would care about that is because you do want money in the fork. Then you become a dealer.
As an end user? No difference.
I wholly disagree. It depends on the project.
For the projects that want contributions, yes, FOSS is what you want.
For projects that don't want contributions, there's no loss in switching to SAMS.
I said as much in the post.
> I think it’s a distraction to try to force this into a good/bad dichotomy. I don’t hear anyone saying that “source available” is bad.
And yet there are comments on this very page saying that SAMS gives less freedom, therefore it's bad.
Edit: if you want an example of where GPL vs BSD license made a huge difference, just look at Juniper's behaviour around their changes to FreeBSD that were used to build JunOS. Juniper was a poor contributor of changes they made to the FreeBSD kernel back to the community. In comparison, the fact that the GPL forces vendors to publish their changes to Linux means that the community has ended up with support for many embedded platforms being merged into mainline. The FreeBSD developer community struggles in part because vendors can take without giving back because of the license, so there is less incentive to participate in the community.
Even Google still "contributes" to Android. But they made it unusable without Play Services, which is entirely proprietary.
There are ways to use FOSS to further monopoly and still look like the good guys by contributing. Doesn't make them any less the bad guys.
In fact, I would argue that open source licenses makes it easier to compete against the cloud platforms you listed. Smaller companies like Hetzner can build their own private cloud platforms using virtualization software like QEMU (another very healthy project licensed under the GPL) and open source orchestration software. They can obtain and build on this software because it is open source and freely available (free as in both beer and money). "Source available" licenses aren't an improvement on this.
Moreover, Google is the parasite in this case. Hetzner was founded in 1997 before Google even existed, running cloud-like business before Google launched their first service. Google isn't the reason software like QEMU exists, although they have certainly helped improve it.
Not sure why you're choosing to be so ignorant of the history of how we got here today.
I do not dispute that Hetzner built that stuff, but in "The Economics of Programming Languages," Evan says that cannibals need to build a business too. What they don't need to build is the software they cannibalize.
So the original authors have to build the software and a business, while cannibals just build a business. Who is going to win?
And your claim that QEMU is a small part of their business discounts the other FOSS code they build on. How much FOSS? I bet it's a lot.
Why is it that software developers, like Fabrice Bellard, choose to use FOSS licenses rather than a software available license? Do they receive zero benefit from choosing a FOSS license? No. They receive the benefit of other people using, and then improving the software they originally developed, which in turn feeds back into building a stronger community that supports the software.
SAMS has barriers to entry that FOSS does not, and it fails to protect certain developer interests that FOSS licences protect. Those barriers to entry and rights matter to authors of FOSS. Developers who believe in FOSS will never adopt SAMS licenses, because SAMS doesn't protect the rights those authors value in the way that licenses like the GPL do. You're free to use whatever "software available" license you want, but people like me that value what FOSS gives back to us will never come around to your viewpoint because you do not value what we value.
The rest, like me, just have to go along because SAMS is not widely accepted.
The problem is not FOSS. The problem is that FOSS is the only socially acceptable option.
One of my points is that FOSS can be worse for the end user because companies like Juniper can take a lot of it and make it proprietary. This is true even for the GPL in these SaaS days.
I personally think that copyleft is a necessary thing for non-FOSS SAMS because of this.
I disagree with this point. They don’t make the FOSS worse. They make a new thing. The original is still available.
And if it was SAMS it wouldn’t save it from this fate as it would never be used enough to get to this point.
So SAMS isn’t a defense against “abuse.” But I argue that this isn’t abuse at all as the license is used as designed. It’s not a bug, it’s a feature.
If I create a project with MIT, I’m perfectly fine with Juniper taking it and bolting it onto their own proprietary software. I don’t think this makes my project worse.
But the new thing is not, and unwitting end users using the new thing probably are never told about the open alternative.
> And if it was SAMS it wouldn’t save it from this fate as it would never be used enough to get to this point.
If SAMS were as accepted as FOSS, I think SAMS would be used enough to get to that point.
> But I argue that this isn’t abuse at all as the license is used as designed. It’s not a bug, it’s a feature.
I'm not arguing for abolishing FOSS. Projects that want this can still use FOSS as it is.
I'm arguing for SAMS to be accepted as a valid alternative. Based on the comments on this page, it is not as accepted.
But that’s impossible as SAMS is not FOSS.
This is objectively true.
> therefore it’s bad
This is subjective, of course, in relation to other license types. I happen to agree with it, but so what.
> This is objectively true.
To only a certain kind of person: non-author dealers.
I disagree entirely. You're describing various communities around various OSS projects, and what you're describing is fantastic. However, none of it is inherent to OSS. There are more OSS projects out there that have no community around than those that do, but they are no less OSS.
Imho the main benefit of FOSS is that it becomes a shared good forever. Which includes those community aspects.
No vendor can close it back up. If vendor goes under or stops supporting the community, the community can go on regardless. That keeps the FOSS available to all until the last copy bitrotted away.
And it does remove a freedom from the user, that of paying someone else to host and run the software on their behalf.
This seems like the software version of inkjets, sell the printer for free and make money on consumables while locking in their users to buy from them. In this way, “Source Available” gives away the software but locks the user into only being able to use them to host.
And before you say the user can self host, be aware that many times the user may not be a tech company and self-hosting would be too hard for them. That is why many organizations use cloud companies like AWS, etc and forcing the user to not be able to use their host of choice is taking away user freedom.
Claiming that it is closer to proprietary software when users still get the source and the same freedoms as FOSS is disingenuous.
> And it does remove a freedom from the user, that of paying someone else to host and run the software on their behalf.
No, they can pay the authors. And we are talking about control, not freedom. I make that very explicit in the post.
And the claim that paying someone else besides author is a user choice has nothing to do with the discussion about user control over their own devices.
Sure, it may take an economic choice away from users, but it does not remove their control. And to be frank, if users were going to choose cannibals, then I don't feel bad for them. My warning in the post applies to users too.
And nothing stops the authors from offering a different license to wannabe cannibals for money if they hold all of the copyright.
Likewise source code is a shared a lot in my experience, i.e. the important software that's closed but has the important customer, the important customer gets the access when they ask for it. This depends on who you are and what you sell, of course.
So in practice, the difference isn't that huge.
That said, you are right too, THERE IS a difference. And it's better than entirely closed source.
So I will prefer the source-available over completely-closed-source, but I'm not going to be grateful about it.
And then there's realities, if I'm writing business critical software that my life depends on, I'll make it closed source in all likelihood. I'm not Stallman.
So I don't blame anyone for caring about their interests, it's entirely fair.
End users are rarely that important customer, so for end users, there is a difference.
> So in practice, the difference isn't that huge.
Except that with SAMS, you still can share. I said as much. And you can actually get the source if you're not a VIP.
That matters because sometimes, even with FOSS, end users do not get the source if the source is not copyleft enough.
That said, I respect your opinion -- I've seen your comments on the thread and I see where you are coming from.
They absolutely do not get the same freedoms as FOSS. That's literally the point of source available, it isn't FOSS.
Not bad, not closed source, but not FOSS. Although I don't believe you quite meant it like that based upon the essay.
Oh, I did.
But my point in the essay is that FOSS can actually be bad for end users because companies can make a lot of it proprietary. Actually proprietary. And they do.
This is worse for users than copyleft SAMS.
The people who keep claiming that SAMS gives less control to end users are dealers.
Exactly this. I've been producing both OSS and proprietary software for decades. I've always provided access to the source of the proprietary software I sell -- but that is still proprietary software. The license that comes with it bears no resemblance to an open source license.
With SAMS, users can have the source, modify, and share. With proprietary, it's hit and miss if they even get the source. Being able to modify is rarer, and being able to share is even rarer.
SAMS has at least three things in common with FOSS and only one in common with proprietary (no cannibalism). How could it be closer to proprietary?
They can't share the source code with the default license, no, but other licenses can always be negotiated.
> SAMS has at least three things in common with FOSS and only one in common with proprietary (no cannibalism). How could it be closer to proprietary?
I'll be really honest here -- I'm pretty sure I didn't fully understand the point your post was making. It sounds to me like you have a problem with the virality component of OSS and SAMS, as you describe it, is just OSS without that. But the virality component was never a philosophical part of OSS. It exists in most OSS licenses in order to ensure that the project remains open source in the future.
So, to me, SAMS sounds pretty much exactly the same as OSS.
As I said, I'm sure I failed to grasp something here.
You did misunderstand, and I apologize for that.
The one quote I put in about not liking virality was an admission that I used to not like virality for bad reasons. My opinion has changed, which is why I have a note near the end that copyleft is a good thing, that it should be the default, even for SAMS. Especially for SAMS, really.
The difference between SAMS and FOSS is that FOSS gives an advantage to cannibals, and non-FOSS SAMS takes that advantage away from the cannibals.
For the end user, nothing should change between SAMS and FOSS (if my definition is right), and that is probably where your confusion comes from.
From a licensing point of view, what actually is the difference between FOSS and SAMS?
> From a licensing point of view
This is pretty broad, actually, which is why I broke it down into roles that people might have in the post.
Instead of talking about generic roles, I'll give a concrete example and include the types of ways people might approach it. Sorry for the long post.
I'm building a GitHub-in-a-box VCS called Yar; it will be a VCS, but it will also include an issue tracker, a wiki, a forum, and ways to host it for others. Think something like the Fossil VCS meets GitLab.
Let's say it's done, and I have licensed it under a noncommercial SAMS license.
You find my VCS, and you're curious.
You start as an end user, downloading the source, building it, making a test repo, and generally just experimenting. The license encourages you to do this.
It turns out that you love Yar! (This is probably the most unlikely part of the story, lol.) You find out how to convert your Git repos to Yar repos, do the conversion, and you're still happy. So you decide that all your development will be in Yar.
Unfortunately, you now need to have somewhere to host the server part of Yar so that your code is accessible over the Internet. As the author, I provide hosting, which is free for SAMS projects but paid for proprietary.
Because you have proprietary code, you would have to pay. However, you know from your experimentation that Yar is easy to use, so you experiment again and see how easy it is to set up an instance on the server where your website.
Turns out, it's easy! You don't even need root!
So now you have code hosting for free.
Under the license, this is entirely allowed! And encouraged. You are an end user still. It doesn't matter that your use of it is for commercial code; you are not providing Yar for others' use.
Let's say that you are not quite happy with Yar's CI/CD because it doesn't use YAML, and you absolutely must have YAML. So you modify the code to translate YAML into what Yar understands, and Yar now can use YAML as an option.
There's another end user, Eric, who is like you; he loves Yar but wants YAML. You give him a free copy of your modified Yar source for him to use elsewhere and even host himself. This is allowed and encouraged.
Now, say we have another user, Cameron, who has proprietary code too. He happens to be a customer of your proprietary code. He uses Yar too, but he doesn't like my prices. He asks if he can host his proprietary code on your Yar instance.
This is the moment you could become a dealer and break Yar's license. It doesn't matter if Cameron pays you or not; you will have "redistributed" (loosely) the code to him by providing the service.
Well, let's say you ask me if you can, and I tell you this. I also tell you that I'll let you have a different license for a fee that would allow you to host Cameron's code.
Let's say you decide to pay the fee if I let you have paying customers. We haggle, come to an agreement. (I want users to have hosting choice too!)
So you can host Cameron's code, and you can now do it with or without pay. Can you still distribute your YAML modifications to other end users without pay? Yes! Can you provide your instance for pay to other end users, even the YAML modifications? Yes, because you paid for a license that included that! Would you have been able to provide your instance for pay, with or without the modifications, if you didn't pay? No, you would not.
In essence, when you are acting as an end user, you can share, modify, and share modifications. You can host it for yourself.
One thing you cannot do is provide it as a service to others. You also can't make them pay for your modifications because that's commercial too.
I hope that clarifies.
What is the unique thing that SAMS is bringing into play? Is it just another OSS license variant? If so, that would be the answer to my question. :)
The tangible difference is the "noncommercial" part, where if you offer your instance for pay, that would be violating the license.
The Open Source Definition includes this:
> The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
(Emphasis added.)
People interpret that as meaning that Open Source cannot restrict a business from using it for any purpose, including making money.
This also comes from Freedom 0 of the Four Freedoms, where the software may be used "for any purpose."
So if I put out a license that only allows noncommercial use, people say (and probably rightly) that it is not an Open Source license.
SAMS is different from FOSS because it accepts a noncommercial license under its umbrella when FOSS does not.