If you’ve heard of open source, and you’re like me, you might have assumed that open source means, well, open source: the code you are writing is free for everyone to see and use.
But like me, you’d be wrong; very wrong. Over the past decade, much of open source has shifted away from a laissez-faire, open use policy and towards a restrictive licensing structure that is more akin to music, although not exactly.
This post will walk through the different types of open source licenses, who uses them, and why things have changed so much over the past few years (hint: it’s the cloud providers’ faults).
A (little) bit of open source history
To understand why open source software needs to be licensed in the first place, a small history lesson is in order. Today, the entire internet as we know it relies on thousands of public pieces of open source infrastructure, from operating systems (Linux) to version control (Git) to web frameworks (Next.js) to frontend libraries (React). These pieces of software are usually maintained by a small group of underpaid, overworked developers, a fact that’s reflected in this popular xkcd comic:
It’s undoubtedly a very odd situation that so much of our infrastructure relies on these publicly built and maintained, not-for-profit pieces of disjointed software. How did we get here?
Early origins of open source software
In the earliest days of software (think the 1950s), programs were so tedious and difficult to write that nobody would have dreamed of making them public and free to use. But in the 1980’s, things started to change thanks to Richard Stallman, a pioneer of OSS (and complicated figure):
In 1984, Stallman spearheaded the creation of the GNU, a free operating system that was made to counter closed systems.
In 1985, he wrote the GNU Manifesto, asking for support in the development of the GNU operating system.
He also founded the Free Software Foundation (FSF), a nonprofit that was aimed at promoting freedom in computer use.
By 1987, most of the essential components of the GNU operating system were complete. There was an assembler, editor, and various Unix utilities like grep and ls. A C compiler was almost finalized.
In the 1980s, Stallman also created the GNU General Public License (GPL). All the components of the GNU operating system were released under this license.
Today, the GPL allows for the freedom to share and change all program versions, ensuring that they remain accessible to all users.
Stallman went on to become a god-tier famous programmer, known as `rms` among developers, and campaigns to this day about how important open software development is. After the GPL was invented, other programmers like him created big pieces of the open source ecosystem we know today:
Linus Torvalds worked on Linux in the 90s
The Apache Software Foundation was created in 1999, and the Apache HTTP Server (used by tons of the Fortune 500 to this day) was released 4 years earlier in 1995
Firefox came out in 2004, Node.js in 2009, Docker in 2013, etc.
The important thing to understand is that many of the people working on this stuff were philosophically invested in having their software be open and available. They were not trying to build commercially successful companies. It was a movement!
That’s why if people ask me, I say that the term open source means a lot more than just the logistical fact that the code is free to see and use; it’s more about a community, and a philosophy around how things should be built. The internet is a public good that impacts the lives of everyone on earth, and there’s an argument to be made that the pieces of infrastructure that hold it up should be public domain, not owned by a for-profit corporation. This idea goes well beyond low level infrastructure, and has implications for applications too. I’d highly recommend reading this interview with Jack Dorsey where he explains how these concepts apply to something like Twitter.
Keep reading with a 7-day free trial
Subscribe to Technically to keep reading this post and get 7 days of free access to the full post archives.