I was reading this article and wanted to post a comment but felt it warranted a reply article. First off, if you don’t know me, I’ve written a ton of Open Source code. Entire platform and then some. I think the general opinion that is expressed in this article and many things I see online are overly simplistic and dangerous.
We have to be paid
Who will pay your salary?
People have different answers for open source business models. For example “consulting” or the vague “support”. I always wonder if these people have ever tried to sell advice? Or maybe “support”.
People don’t buy these things. Especially in a declining economy. The way sellers usually sell these things is the clue that you might be violating a license and it would be much easier if you paid and got the business license. I will even add the “support” for free. Yes, you can get sponsors if you spend all your time on the phone. It’s a never-ending sales process. Find leads and make calls. Running this type of business requires a lot of overhead.
Some developers use problematic open source licenses which they can then exploit for sales. But then they are vilified as “not open source enough”. There is no victory there.
Sun Microsystems paid my salary for part of my OSS work. They plummeted and fell from a valuation of over $200 billion, eventually selling for around $7 billion. Granted, it wasn’t because they were open source. It’s just an anecdote, and it didn’t help. Real people are losing their real jobs because open source doesn’t make money. Even when it is, it pays very little. People used to say it ended with a smaller piece of a bigger cake. That’s true, but that only applies to high rollers and you have two choices: become the high roller or watch a high roller cash in on your hard work.
Don’t get me wrong, I’m not against people taking advantage of my work or even big business. I do OSS for fun and I love the idea of people succeeding through my work. But I feel the frustration that many developers feel, and the “open source advocacy” I see from people is problematic.
bait and switch
The bad thing is corporate cynicism. Take Google. They opened Android when there were no users. Businesses have built on it, and so have developers. Advocacy has formed around it because “it’s open source.” Then they released the closed source Google Play Services which then added the SaaS Firebase requirement for some core functionality (it’s free at the moment) and now we have deep vendor closed source dependencies impersonating for open source.
We don’t have to use Google Play Services if we want to create for Android. Sure. But it makes it much more difficult to create an Android app and if you don’t use it for certain things (eg push, buy, etc.) you get banned from the biggest Android market. A large majority of developers just “use it”. This means anyone who wants to wipe Google Play off their Android device in favor of a 100% open source solution; will find that they have very few software choices for applications.
Take elastic research. They were open source and were killing it. But AWS was forking and not really helping their bottom line. So Elastic changed their license to block AWS. AWS launched its own fork. Some people vilify Elastic in this story, but those people probably never had to fight Amazon for the survival of their business. In this case, both sides have armed open source in a trade fight.
The case of Java is slightly different. Java was not open source and was later made open source. It always kept IP on the tongue. So I get some hold of Oracle on the project and I accept that. It’s good that there’s a steady hand of the ship and that has helped Java’s success. The problem with Google’s lawsuit was that Oracle tried to extend its IP address to include APIs. It was a mistake.
GPL is the best license
About a decade ago, a startup called RoboVM released an open-source compiler that translated Java into native iOS apps. It was pretty cool, and I talked quite a bit with the founder of JavaOne. At the time, we were considering creating our own virtual machine or choosing a solution such as RoboVM. We ended up with the first one and built our own virtual machine which was much simpler and suited our needs better (it’s also open source).
This decision was based on technical merits and I think it paid off, but I still have huge respect for the RoboVM team. My concern was Apple. They break stuff, a lot… Building a low-level virtual machine is a dangerous cat-and-mouse game where Apple would suddenly change something and we’d be stuck. A secondary concern was monetization. I understood that the RoboVM team would have to pay the salaries of its employees and founders one way or another. How to make money with an open source compiler? Note that this was ten years ago and there were no precedents like Zig that we could consider as a model.
At some point my concerns about Apple’s policies materialized and Apple added a bitcode requirement when targeting certain platforms. RoboVM spent a huge amount of time working on bitcode support and decided to shut down its source code. They realized they couldn’t fund continued development without it. Don’t take this as a judgment on their decision. I fully understand that, as I said, OSS monetization is very hard.
The GPL protected the community by forcing RoboVM to release the final version code before the bitcode was migrated. This allowed for a few forks of the code in later years, but it’s still not maintained. The company was purchased by Xamarin and quickly discontinued as the latter was purchased by Microsoft. Without the GPL, the code might have been inaccessible. It also forced third parties to release their code.
In this regard, I’m a big proponent of the GPL over more permissive licenses like MIT, BSD, Apache, etc. I think as a community we should prefer a license that preserves community rights as opposed to corporate rights. It also provides a good monetization option to the creator of the project. Just renew the license as owner license and charge for it. Unfortunately, the GPL is often a failure for many developers because they mistakenly assume it’s bad for them. The opposite is true. The GPL is one of the best ways to preserve community rights in the long term.
Have things changed?
I already mentioned Zig. There are many other examples of successful foundations such as SQLite, Mozilla, etc. Getting to this point is usually difficult and doesn’t necessarily work for all open source projects. For example, cURL is used by just about everyone, but I don’t think we’ll see a cURL foundation. Also note that all of these projects are based in US tech hubs. In my experience, it is much harder to get sponsors in other territories.
Does this mean that all open source should be a hobby or an all-encompassing mega-project?
Unfortunately, I don’t have good answers. But I have a problem: overzealous open source advocates. You are not helping!
Open source is becoming a business-only game. It is being used as a weapon between tech companies fighting each other. There’s a name for it in retail: loss leader.
In retail, a large supermarket would sell certain products at a loss and advertise that incredibly low price. It attracts audiences who buy other things along the way and so the supermarket ends up making a profit. But the reason is to drown out the competition. The competition seems expensive (since they can’t sell at a loss). They go bankrupt and the big retail company raises prices. Initially, it looks like we got a great deal from the competition, but we end up losing. For this reason, some regulators prohibit such practices because they end up destroying a market.
Open source is similarly and cynically used by big tech. They form “communities” by hiring armies of developer relations professionals to create a masquerade of grassroots enthusiasm. Sometimes they don’t need to monetize the market, that’s enough to keep the competition out.
I love open source and I think it’s remarkably important. That’s why we shouldn’t let corporations weaponize it. We need diversity within the ecosystem and we need to support smaller critical projects. The idea of ”distribution” to open source projects or “consultation” is not viable.
Big companies are using open source as a weapon to fight each other, we seem to benefit from it in the short term. But as they win, the entrepreneurial spirit takes over and they double in control.
The solutions I propose are:
Use the GPL – it’s there to protect the rights of the community. No wonder companies don’t like it.
Don’t be an OSS puritan – small businesses need to make money. They will offer SaaS, closed source extensions, etc. It’s OK.
Big corporations are not benevolent – the advocacy I see around FAANG (MAANG) corporate OSS projects is problematic. They do not support OSS. They use it and exploit it. Don’t get me wrong, I’m grateful for their code and it’s wonderful that they release it. But we have to be careful, they have fiduciary requirements that could conflict with doing the “right thing” by OSS standards.
I don’t know if the next thing I will do will be OSS. I don’t know if I’ll choose GPL because, like I said, people have a problem with that. But I do know this: if you’re an open source advocate. Turn down the rhetoric. This is not helpful.
Also posted here.
. . . comments & After!