Today, we’re investigating another buzzy buzword you might hear bandied around by techy-types. What is Open Source Software? Let’s have a look and find out;
The Source of Open Source
Yes, okay, we’re doing this a little bit backwards tackling the second word first. But honestly, stick with us, because when you understand what the “Source” bit is, it makes the rest much easier.
Source refers to source-code. Source-code is just the code that makes software work. Y’know when you watch anything remotely computer-y in films or on television and there’s someone sat bashing at a keyboard? That’s often source-code.
The source code is interpreted by the computer, and turned into actions that the computer can take. And when we say “computer”, we’re talking in really broad terms. Your smartphone is a computer running code. Crumbs, your toaster probably has code in it nowadays!
In it’s most basic form, take this website for an example. The web browser you are using to view it right now has to be told exactly what to do. And when I say exactly what to do, I really mean it. What colour should the text be? What font? How far towards the margins should it go? What if someone with visual impairment is reading – what then? Computers take things really literally, and if you don’t give it every instruction, and in the right order, it just won’t do anything.
So next time you tell your toddler to go and put their toys away, and when you check, they put like 2 away out of the 347 toys strewn across the living room floor, just be thankful they’re not quite as literal as a computer. Although my computer never left lego in the middle of the hallway…
The Open bit of Open Source
Stay with me, but Open Source is the opposite of Closed Source. Captain obvious, away!!
No, but really, closed source is totally a thing. Closed source means that nobody can see the source code. Examples of closed source software include Microsoft Windows, Facebook, MacOS, Spotify, and all kinds of other software you might use every day.
Examples of open source software include Android, Linux, WordPress and Microsoft’s .NET Core.
That means you can literally see all the code which makes Linux, Android, WordPress and hundreds of thousands of other pieces of software, work. We open-source a lot of our scripts here at Beaty Consultancy.
It seems like a strange business proposition doesn’t it. Here – have all the secret code which makes our software work. And even if you think about what we do here at Beaty Consultancy; we make our money by designing solutions to client’s cloud problems. If we open source those scripts, you can do it yourself, and you don’t need to pay us anything. Then my wife and I will need to live on noodles for the rest of our lives, no?
The likes of the Microsoft Windows team and Apple MacOS folks certainly think Open Sourcing their code would be a bad idea. Kill open source software!!
Steady on. There are loads of reasons you might want to open source code. We do it because it demonstrates our competence. If you use our code to make something work in your cloud estate for free, that’s great. Then maybe the next time you have a more particular problem, you’ll come to us because you know we’re good at what we do.
Another reason to open-source your code is just because of passion. There are some amazingly talented developers in the world, and a lot of them write code because they love it. The idea of thousands of people running the code they wrote is better than being paid for some of these folks.
Security Implications of Open Source Software
You knew we couldn’t get too far without being the tinfoil-hat wearing party-poopers we are, and talking about security.
If just anyone can see the code which makes your software tick, then they can pick it apart and work out exploits for it, right? Well, yes, you’re right actually. But then again, so can the good guys. It is very much a double edged sword in this respect.
If an open source project is very popular, it certainly stands to reason that enough talented developers and technicians are looking at the code to mean that security bugs are spotted and fixed. But just by open-sourcing a project, you aren’t guaranteeing that it is automatically secure because someone would have found the bugs. People are busy.
So Closed Sauce is Better Then?
If code is closed source, then neither the good guys nor the bad guys get to see it, right? So that means stalemate, and we end up secure? Not quite. There are more ways to find security vulnerabilities in software than just looking at the source code. This means that hackers may well find a bug in some software and create an exploit. The community at large would not be able to come up with a fix for it, because they can’t see what they’re trying to fix – the source code.
See what we did there?
Anyway, here’s a question for you. Given what we have just learned, do you think that the software running on the ATM machine you use to withdraw cash should be open source? Why, or why not?
If you want to learn more about open source software licensing, have a look at the GPL license wikipedia entry.