Open source software. Sounds like another tech buzzword like agile development, MVC frameworks, waterfall models, and so on.
But really, it’s much more cool than all of those.
Simply put, open source software is software that anyone can edit. And because of that, it’s awesome. Read on to see how your favorite open source software (Firefox and Android, for example) works.
How it works
I think it’s easiest to explain open-source software with a little story. Get some popcorn – this has action, drama, and copyright infringement.
Let’s say an innovative young fellow named Jeeve Stobbs has an amazing idea for an app called Mac-Pan. It’s about a little yellow guy who goes around munching on stuff and fleeing from ghosts (but it’s not a rip-off of that popular arcade game.)
Jeeve wants others to help with his app, since two thousand heads are better than one. He could hire a team of developers, but instead he turns to a community of volunteers who enjoy helping out with cool software projects (most software developers, including yours truly, like working on projects like these.) So Jeeve puts the source code of Mac-Pan – like the instructions for a cake – online. It’s called open source software since anyone can view it and work on it – but, of course, there are some twists.
Stud computer scientist Chase wants to help with Mac-Pan since he’s a fan of retro video games. He looks at the code that Jeeve put online and downloads it to his computer. Chase finds the piece of code that makes ghosts appear on screen and edits it so that, huge evil robots chase you around, along with ghosts. He submits this code to Jeeve.
Jeeve likes the robots idea, so he replaces the old ghost code with this new code. The nice part is that he doesn’t have to touch the other code – the code that makes Mac-Pan move around, the high-score tracker, etc. Jeeve can work on certain parts of the code while Chase works on others. It’s a beautiful partnership. Jeeve makes Chase a co-author of Mac-Pan.
Not-so-stud computer scientist Nick wants to help too. He grabs the code and changes the color scheme to be pink with purple polka-dots because, well, black and white are too mainstream. He submits it to Jeeve and Chase. Repulsed, Chase rejects the idea and doesn’t change the master copy of the code (he can do that now that he’s a co-author.)
Jeeve releases the app, becomes popular, and is elected President of the US. (Or insert your own happy ending here.)
Why it’s great
As you can see from Mr. Stobbs’s story, having a gigantic community – more than just 2 people, in practice – brings a ton of great new ideas and skills to your app. Of course, there are a lot of bad ideas too (sorry, Nick.)
Another benefit is that it’s much easier for users to talk with developers and, therefore, for errors to be fixed. Think about it: a huge company is a lot less approachable than a team of volunteers. And, of course, a user with some technical knowledge can fix problems herself.
Not to mention that open source software is free 99.9% of the time.
Overall, open source software is really high quality if there are enough people working on it. More eyes mean more errors get found, and more hands mean more features get added.
Some awesome open source software
You might not expect, but a ton of software – especially most smaller projects – are open source. Why? Open source software is a lot easier on developers, plus it costs much less to produce.
Don’t believe me? Ask these well-known open source projects (take a look above):
- Android (Google works on it too, but anyone can make a modified version of it)
- Mozilla Firefox (awesome web browser)
- Chromium (Google Chrome is just Google’s branded version of this web browser)
- Reddit (yes, that place)
- WordPress (epic blogging software that runs this blog)
- Linux (90%+ of supercomputers run this operating system; it’s part of Android too)
- VLC (music/video player)
Most programming languages (what’s used to make all software) are open-source, too.
Try out some open source software. Hopefully you’ll appreciate their price ($0.00), their frequent updates, and their loads of volunteers ready to help you out.
Maybe you’ll even start using them. And maybe you’ll be like Jeeve and make your own open source software…