Open source is fundamental to almost all software because of how many key product components are actually open source. Whether you look at programming languages or all of the supporting components like operating systems, databases, UI frameworks, etc, almost everything is open source.
This starts to change as you go up the stack. Software components are open source, but where they run often isn’t. Your cloud provider isn’t open source, the mobile operating system might be proprietary, the SaaS billing system isn't open source. Of course they’re made of software which will use open source behind the scenes, but the end-user experience is not.
Open source always used to be about the license and what you could do with the source code of the piece of software you were interested in. Nowadays, it seems much more like an overall philosophy to building. This is a good thing because the open source community has spawned so many innovations - anything is allowed by default.
However, in recent years this seems to have been taken too far with many copy-cat businesses appearing as “the open source alternative to x”. This has pushed the idea of “open source” to being a marketing concept used to lure developers into a project just because it matches their philosophical preferences. That doesn’t sound like a compelling way to differentiate.
I had a fun discussion about this in the context of open source investing with Joseph Jacks in episode S03E03 of the Console Devtools podcast. One topic was whether everything should be open source, and why it’s a differentiator for software companies:
JJ: I do think eventually all software should be open source by default. I don’t think it’s necessary today. The world operates in a pretty functional and rewarding state because not all software is open source. And in fact, a big part of the model that I’m pursuing, frankly my investments are benefiting from as well, is the combination and the sort of the synthesis of closed source around open source, not the other way around, where you have proprietary software at the core and then open source at the edges…it would just be a lot more efficient and fundamentally easier and structurally allow for better evolution and experimentation and inclusion and a lot of things, especially from the engineering community where things tend to be more bottoms up and sort of inside out versus outside in.
My view is that open source makes sense for the lower level foundations upon which services are built. Relying on proprietary components for critical parts of your product is a recipe for losing leverage over your business. This has played out many times with the likes of Twitter and Facebook changing their APIs to stop competition. Relying on someone else’s platform is often a mistake and the same concept applies to building software.
Open source mitigates that risk because you can take a copy of the source code, fix issues, and host the whole thing yourself. Even if it’s just an interim backstop as you migrate to somewhere else, at least the hostage risk is minimized.
But I’m skeptical as to whether end-users care about this as you go up the stack. macOS and Windows are the two most popular desktop operating systems because of how well they work. Linux on the desktop is notoriously bad - it suits some, but not most. Yet on the server open source Linux is the clear winner. Seems like no coincidence that servers are part of the infrastructure.
So on the one hand we have technical products that are critical infrastructure components, where being open source makes sense. On the other hand, we have consumer products where it’s all about the experience and open source is not that relevant to consumer choice.
Where this may start to matter is with business users. There is a case for mitigating lock-in risk for applications which businesses rely on to run their operations, but we’ve yet to see it. Where are the open source accounting applications? HR? Task management? The closest I’ve seen is Mattermost being an open source chat service, but Slack seems to be much more commonly deployed.
There are lots of challenges with open source, not least making it financially sustainable and mitigating security risks, but the model has clearly won for critical infrastructure. Is that where it will (and should) remain, or will we see more successful open source alternatives for products higher up the stack?