DEV Community

Cover image for Open Source Bait and Switch
Shai Almog
Shai Almog

Posted on • Originally published at debugagent.com

Open Source Bait and Switch

I was reading this article and wanted to post a comment but I felt this warrants a response article. First, if you don’t know me I've written a ton of Open Source code. Whole platform and then some. I think the general view which is expressed in that article and a lot of the fluff I see online is over simplistic and dangerous.

We Need to get Paid

Who will pay your salary?

People have various answers for open source business models. E.g. "consulting" or the vague “support”. I always wonder if such people ever tried selling consulting? Or maybe “support”.

People don’t buy these things. Especially in a downturn economy. The way sales people typically sell these things is the hint that you might violate a license and it would be much easier if you paid and got the commercial license. I’ll even throw in the “support” for free. Yes, you can get some sponsors if you spend all your time on the phone. It’s a never-ending sales process. Chasing leads and making calls. Running this sort of business requires a lot of overhead.

Some developers use problematic open source licenses which they can then leverage for sales. But then they get vilified as “not open source enough”. There’s no winning there.

Sun Microsystems paid my salary during some of my OSS work. They went under and fell from a 200+ billion dollar valuation, eventually selling at around 7 billion. Granted, it isn't because they were open source. That's just an anecdote, and it didn't help. Real people lose their actual jobs because open source doesn’t make money. Even when it does, it makes very little. People used to say it ends up with a smaller piece out of a larger pie. This is true, but only applicable for the big players and you have two choices: become the big player or watch a big player take the profits from your hard work.

Don’t get me wrong, I’m not against people profiting off my work or even large corporations. I do OSS for fun and love the idea of people succeeding based on my work. But I get the frustration many developers feel, and the blanket “open source advocacy” I see from people is problematic.

Bait and Switch

The bad thing is corporate cynicism. Take Google. They open sourced Android when it had no users. Companies built on top of it and so did developers. Advocacy formed around it because “it’s open source”. Then they released the closed source Google Play Services which later added the SaaS Firebase requirement for some essential functionality (it’s free for that at the moment) and now we have deep vendor closed source dependencies masquerading as open source.

We don’t have to use Google Play Services if we want to build for Android. Sure. But it makes it much harder to build an Android app and if you don’t use it for some things (e.g. push, purchase, etc.) then you’re banned from the largest Android marketplace. A vast majority of developers “just use it”. This means that 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 apps.

Take Elastic search. They were open source and killing it. But AWS was forking and not really helping their bottom line. So Elastic changed their license to block AWS. AWS started their 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 weaponised open source in a business fight.

The case of Java is slightly different. Java wasn’t open-source and was made open source later. It still kept IP over the language. So I get some of Oracle's tight grip on the project and accept that. It’s good that there’s a steady hand of the ship and it contributed to the success of Java. The problem with the Google lawsuit was that Oracle tried to stretch their IP to include the APIs. That was a mistake.

GPL is the Best License

About a decade ago, a startup called RoboVM released an open source compiler that translated Java to native iOS apps. It was pretty cool, and I talked quite a bit with the founder at JavaOne. Back then we were considering building our own VM or picking up a solution such as RoboVM. We ended up with the former and built our own VM which was much simpler and better fit our needs (it’s also open source).

That decision was based on technical merits and I think it paid off but I still have tremendous respect for the RoboVM team. My concern was Apple. They break stuff, a lot… Building a low level VM is a dangerous game of cat and mouse where Apple would suddenly change something and we’d be stuck. A secondary concern was monetization. I understood the RoboVM team would have to pay the salaries of its employees and founders somehow. How does one make money off an open source compiler? Notice that this was a decade ago and there weren’t any precedents like Zig that we could look at as a template.

At some point, my fears of Apple's policies materialized, and Apple added a bitcode requirement when targeting some platforms. RoboVM spent a tremendous amount of time working on bitcode support and decided to close its source code. They understood they can’t fund continued development without it. Don't take this as judgement towards their decision. I totally get that, as I said, monetizing OSS is very hard.

The GPL protected the community by forcing RoboVM to release the code for the final version before the bitcode migration. This allowed some forks of the code in later years but it’s still unmaintained. The company was bought by Xamarin and promptly discontinued as the latter was purchased by Microsoft. Without the GPL, the code might have been inaccessible. It also forced 3rd parties to publish their code.

In this regard, I’m a big believer in GPL rather than more permissive licenses such as MIT, BSD, Apache, etc. I think that we as a community 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 re-license as a proprietary license and charge for that. Unfortunately, the GPL is often a no-starter for many developers because they incorrectly 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 mentioned Zig before. There are many other examples of foundations that were successful such as SQLite, Mozilla, etc. Getting to this point is typically hard and doesn’t necessarily work for every open source project. E.g. cURL is used by pretty much everyone but I don’t think we’ll see a cURL foundation. Also notice that all of these projects are based in US tech hubs. From my experience, it’s much harder to get sponsors in other territories.

Does this mean all open source should be a hobby or a mega-all encompassing project?

Unfortunately, I don’t have good answers. But I have a problem: over zealous open source advocates. You aren’t helping!

Open source is becoming a corporate-only game. It’s used as a weapon between battling tech companies. There’s a name for this in retail: loss leader.

In retail, a big supermarket store would sell some products at a loss and advertise this amazingly low price. This brings in audiences who buy other things along the way and so the supermarket ends up making a profit. But the reason for this is to drown out the competition. The competition seems expensive (since they can’t sell at a loss). They go out of business, and the big retail company raises prices. Initially, it looks like we got a tremendous deal from the competition, but ultimately we end up losing. Because of that some regulators prohibit such practices as they end up destroying a market.

Open source is used in a similar, cynical way 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, it’s enough to keep the competition out.

TL;DR

I love open source and 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 “handouts” to open source projects or “consulting” isn’t sustainable.

Major corporations use open source as a weapon to fight each other, we seem to benefit in the short term. But as they win the corporate mindset takes over and they double down on control. The solutions I suggest are:

  • Use GPL - it’s here to protect community rights. No wonder corporations don’t like it.
  • Don’t be an OSS puritan - small companies need to make money. They will offer SaaS, closed source extensions, etc. That’s OK.
  • Big corporations aren’t benevolent - the advocacy I see around OSS projects from FAANG (MAANG) companies is problematic. They don’t support OSS. They use and leverage it. Don’t get me wrong, I’m grateful for their code and it’s wonderful they release it. But we need to be cautious, they have fiduciary requirements that might collide with doing the “right thing” by OSS standards.

I don’t know if the next thing I’ll do will be OSS. I don’t know if I’ll pick GPL since, as I said, people have an issue with it. But I do know this: if you’re an open source advocate. Tune down the rhetoric. It isn’t helpful.

Top comments (14)

Collapse
 
shandesai profile image
Shan Desai • Edited

Why do the Big Corps beat their chests around OSS? It is essentially free improvements. Someone more capable would be able to patch the software without paying them a salary (reminds me of the meme It's Free Real Estate)

A lot of the OSS software forums are dead because although the source code is open, teams are told not to engage too much with the community and let them tackle the problems by themselves.

I take a philosophical and altruistic stance when it comes to OSS. I open-source a thing without any expectations, if someone makes a billion off of it, that is great, if someone sells it, that is great too.
Like you mentioned, you are doing it for the fun of it, the day that fun factor goes away you should move on to the next one.

Collapse
 
luiz0x29a profile image
Real AI • Edited

So that's not a joke when they say its socialism, all for the community and none for the individual.
Its too good if you work for a big corporation and don't need to make money from software (as you are literally making money by selling your time, the worst possible deal, the 9-5 offer).
Or ironically, live by doing consulting, which is what I do. Its not for everyone and I'm only able to do it on top of having income from owning companies that only do closed source, which is what I did in the beginning of my career for a couple of years until I built my passive income stream. It took 3 years to be able to have the income from consulting to be greater than the passive income from owning shares at the company.
I would never be able to do that on top of OSS and bootstrap my finances, I would basically be working for free.
I use OSS as infrastructure to fill my customer requirements, I leech on OSS, sometimes and I'll contribute back (if the cost of backporting is higher than the value of the code shared back, consulting is a business after all), but as I do mostly glue code, I often tend to use BSD license, so I can keep the "glue code" hidden, so no one else benefits from it, except my customer and me.
I mostly use OSS for the technical perspective, as I do modify it for my requirements, I need the source code to do what I do, less so about ideology, forget that.

Collapse
 
fjones profile image
FJones

Oh god, yes. I've mostly vacated any OSS discussion spheres in the last decade or so, because the evangelism got unbearable. No, OSS isn't your path to a career, and it certainly isn't a playground for you to learn everything you need. It's a good thing to have a look at, see what other people do, maybe try and solve some issues, but it's not the Second Coming either.

Collapse
 
danielwarner profile image
Daniel Warner • Edited

Thanks for the well-articulated perspective. I agree with your stance about overly-simplistic ideas about open source doing more harm than good. I can say from my own experience that things have gotten messy. There are new(ish) reasons that FOSS is critical, for example it has never been more important for people to understand what their software does. Apps are doing all kinds of unexpected things underneath the UI, and unless the user or someone they trust audits the code, they will never know. That has little to do with whether or not one can hack on or distribute the code of a program they own, so it is a little to the left of the original Libre thesis. Also, 'open source' has become shorthand for 'trusted form factor'. Many enterprise Ops teams have a hard requirement that critical infrastructure be open source. Ostensibly, this is so that they can see exactly how it works, and maintain it themselves if support for it goes away. In practical fact, these tools get adopted despite being shot through with functionality that run counter to company policies for adoption... in short, nobody actually looks at the code. Okay... this is turning into a rant... I will just say there are many well-intentioned people pushing an open source agenda from within corporations as well as without, and the more they focus on the unsolved problem of getting a FOSS project to survive and thrive from a financial perspective the more likely we are to have valuable open source software in the future.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

The concerns are backed for things that happened in the past. Like this one:

Collapse
 
danielwarner profile image
Daniel Warner

Great example. I've watched it twice and still don't fully grok it. Everything worked as intended... which added up to a problem!

Collapse
 
wadecodez profile image
Wade Zimmerman • Edited

I totally agree. Unfortunately, people should not expect to get paid for their code. They should expect to get paid for the products/services they create. In short, nobody is going to pay for code if they see value in it.

If you just write code and need inspiration on how to overcome this problem, look at Taylor Otwell. This guy made millions just from writing a little PHP framework. He wrote high quality OSS then turned right around to sell first-party addons and tailored cloud solutions.

He also left room for people to develop an ecosystem around his code. Every business must have a competitor.

Collapse
 
krtirtho profile image
Kingkor Roy Tirtho

I wish there was some kind of license which is a mix of both GPL and BSD-4-Clause (Old)
This way the creator of the software can get recognition, top level priority and mentions along with fork protection

Collapse
 
justageek profile image
Brian Smith

As an example of making a lot of money from open source software, I would direct you to Taylor Otwell, the creator of Laravel and a very astute business person.

Collapse
 
codenameone profile image
Shai Almog

Yes. There are some great examples today. But you need to be a business person more than a coder. This goes a bit against the conception of "OSS hacker" and more of a businessman, politician, community organizer, etc.

Collapse
 
chainq profile image
Károly Balogh

While I definitely like the idea behind the GPL, I'd advise everyone to take extra care, which version of the license they chose. GPLv3 has some very over-reaching implications, which makes it difficult for companies to endorse. No wonder Apple went their own way to basically remove every component from macOS, where upstream switched the license to GPLv3. They were fine with GPLv2. Linus Torvalds has a great breakdown on this, and why he embraced GPLv2 only for the Linux kernel.

Also the SaaS economy made it painfully unclear, who is the user of the software, who has rights to the source, and what kind of other rights they have. If a backend component uses a GPL piece of software, the end use who uses it via an API and a frontend, might not have rights to the source for it anyway. Even worse if it's behind a reverse proxy like nginx. So this might not help people building GPL software on the backend.

Collapse
 
codenameone profile image
Shai Almog

Yes.

I mostly use GPL 2 and usually with the classpath exception which is more lenient. I like a lot of the ideas behind GPL 3 and it uses language that makes more sense to lawyers (so has better potential standing in court). GPL 2 is already in organizations everywhere thanks to Linux so we can "prove" it's OK with pretty much any org.

Collapse
 
peterwitham profile image
Peter Witham

Thank you for the in-depth post and thoughts for consideration. I still find a lot of OSS a mind field to walk through. As some that uses both closed an open source professionally and for fun it can be complicated.

On the one hand I have a responsibility to my day job to make sure everything is in compliance and OK to use, and on the other a moral respect for giving back to authors.

Personally I agree that authors of OSS should be reward for their talent and time. I have issues with folks that think OSS always means free. Time and talent are not free, the code might be.

Again, thanks for giving me more to think about.

Collapse
 
apimike profile image
Mike Rozner

Great article, loved the strangely odd Dalle2 creation

Some comments have been hidden by the post's author - find out more