Spend any time reading about software, and you’ll see the words “open source,” likely without any sort of explanation as to what that means. Why doesn’t anyone bother explaining it?
Well, it’s a tricky concept to explain in just a couple of sentences. I could, for example, say that open source software is free, and that wouldn’t be inaccurate—most open source software is free to use, and some advocates prefer the words “free software” to “open source software.” But to really understand this idea, we need to talk about the definition of “free” because plenty of software that’s free to use isn’t open source.
See? I already got bogged down. Let me back up and answer the question you inevitably Googled: what does open source mean?
Literally just tell me what open source is
The term “open source” refers to any software where the source code is freely available for anyone to read, edit, and redistribute. This means anyone who wants to can look through the code behind the program and learn how it works. It also means anyone who wants to can use that code for their own projects. Famous examples of open source software include WordPress, Firefox, and the Linux operating system.
The opposite of open source software is closed source software, also called proprietary software. Microsoft Word, for example, is closed source—Microsoft doesn’t make the source code for that application public.
In the ’90s, there was a pretty clear line between open and closed source software, but that’s less true now: many applications now are some blend of the two. Google Chrome and macOS, for example, are both built with a combination of open and closed source code.
Like I said: this can get a little complicated, and I already skipped over a lot of nuance. This is why most articles that mention that software is open source don’t bother to say what that means. But it’s a concept worth grasping, so let’s dig in a little more.
What is source code?
I mentioned that open source refers to software where the source code is freely available, but that’s only useful if you know what source code is.
In summary: software is written by humans, and source code is what software looks like while those humans are writing it.
Every application you’ve ever used was written by someone, or a team of someones, in plaintext documents using a programming language. If you’re not a programmer, you probably wouldn’t get much out of seeing this source code, but programmers who understand a language can get an idea of how an application works by digging through it.
So open source software is software where this source code is freely available. Anyone who wants to can download the source code and learn how a given application works—or even make their own changes.
Wait, does that mean anyone can change anything about the program?
No…and yes. It’s important to note that open source projects aren’t entirely decentralized. Generally, someone or some organization manages things, and there’s typically a team of consistent contributors. This could be one lone developer, or it could be a large combination of volunteers and individuals paid to work on the project by either a nonprofit or a company.
Sometimes paid employees of multiple companies contribute code to the same open source project. Sometimes an open source project is the free time passion project of a single person, with only the occasional contribution from anyone else. It varies wildly.
In most cases, any programmer can contribute to an open source project, but contributing code doesn’t mean it will end up in the application. For example: I couldn’t write a bunch of code and add it to Firefox without any oversight—there’s a process in place for contributing, a process that includes someone on the team reviewing and approving contributions.
A lot of smaller open source projects live on sites like GitHub, where users can propose changes that the project owner can decide whether or not to incorporate into the application. Sites like these make it easy to keep track of who made which contributions when, and open source maintainers generally make sure major contributors get credit for their work.
So no, it’s not possible for anyone to make indiscriminate changes to any open source project—but anyone can fork any open source project.
…what’s a fork?
Anyone can take the source code for an open source project and use it to start their own project. This is called forking. I could, for example, grab the code to Firefox, rename it “Justin Pot’s Excellent Browser,” change the logo to my face, and offer it to the world. That would be perfectly legal. I wouldn’t be the first person to do this.
No Firefox fork has overtaken Firefox in terms of popularity, but there’s no reason that can’t happen. Open Office used to be the most popular open source office suite, but after some controversy (that I’m not even going to attempt to dig into), a fork called Libre Office launched. Libre Office is far more popular than Open Office at this point.
And sometimes open source code is used by large companies, who fork projects in interesting ways. Microsoft Edge, the default browser in Windows, is based in part on Chromium, which is the open source application that Chrome is built on. That’s why you can install Chrome add-ons in Edge if you want—both apps are built on the same open source code.
This goes deeper. Chromium was originally built, in part, using code from WebKit, an open source project Apple developed and used for Safari. So the three most common browsers on the web, created by three of the largest tech companies, are all built using the same open source code.
Is open source software free?
Most open source software can be downloaded and used free of charge. You can download Firefox for free right now, for example. But being free to download isn’t what makes software open source.
“Free,” in the English language, can refer to something not costing money, or it can refer to the idea of freedom. The adage “free as in free speech, not free as in free beer” comes from this distinction.
Speaking of, let’s use beer as an example. I could probably attract a crowd by setting up a booth downtown with a large “free beer” sign. If I gave everyone who showed up a recipe for beer and said they were free to use that recipe to brew at home, I probably wouldn’t make many friends. I would, however, be living up to “free as in speech.” It would be open source beer. If, on the other hand, I gave you a bunch of beer and didn’t give you the recipe, I didn’t give you open source beer. I just gave you free beer. (You might prefer that, which I understand.)
Some open source software works in a similar way, to varying extents. WordPress is a good example. There’s a difference between WordPress.org and WordPress.com: WordPress.org is where the free and open source download for WordPress lives, but setting up a WordPress website isn’t as simple as installing software, like it is with Firefox. WordPress is software used to build a website, and setting up a website means you need a domain name and a server. There’s nothing stopping you from downloading WordPress and setting it up on your computer, but that’s not a great idea for most people. Many people find it easier to go to WordPress.com and pay them instead.
A lot of companies that produce open source software, or contribute to open source software, are built on similar models. The open source product is free if you want to set it up yourself, or you can pay the company behind the software to set it up for you.
A few more questions with links to answers
I could keep going and going and going. There’s like forty years of drama I haven’t even touched on. Instead, here are a few more details.
-
Is open source software public domain? No: open source software is licensed; it’s just that the license outlines that anyone is free to see the source code and modify it. In a way, open source uses copyright law to enforce sharing—this is sometimes called “copyleft.” There are many different open source licenses, but digging into those would take several books.
-
Is open source software safe? Yes, open source software is generally considered to be secure. You might think the source code being public would mean it would be easier for hackers to find exploits, but open source code is also easier for security researchers to look at and for security teams from all over the world to contribute patches to. This article digs into the pros and cons, if you’re curious.
-
How can you find open source projects? Most software companies have an open source page, where anyone can download the open source projects used to build their products. Apple and Google both have one. So do we—here are Zapier’s open source pages, where you can download tools we built while working on integrating thousands of apps.
This article is an attempt to explain what open source is to a non-technical audience, and as such, will probably be considered wrong by most of the internet. For more precise definitions, please check The Open Source Initiative or The GNU Project.
[adsanity_group align=’alignnone’ num_ads=1 num_columns=1 group_ids=’15192′]
Need Any Technology Assistance? Call Pursho @ 0731-6725516