As far as I’m aware, Open Source is generally restricted to the programming community, though with the developments in 3D printing it’s starting to become a little more well-known.
Traditional computer software was always closed source. You buy the finished program, for instance Microsoft Word, but you have no idea how it was made. If there was one little tweak you’d love to put in your code to make your life easier, tough. You can submit the idea, but you’re left at the whim of a huge corporation.
Open Source is the opposite, you often get the source code itself and create the program from that. These kind of programs do sometimes need a little technical knowledge, but many of the bigger projects will pre-compile their source code into a usable file, just like the closed source versions. There are, however, a few key differences.
You can read the source code yourself and see exactly what you’re getting. OK, if you can’t understand the code, there are thousands of programmers across the globe who can, and we’re a fairly trustworthy bunch… Not sure exactly what that latest program is going to do with your email address? Will it store your password securely? A quick snoop at the code will reveal all the answers.
This also impacts security. When thousands of people are inspecting the code, generally speaking any vulnerabilities in the code base will be spotted early on. And due to the nature of open source, the person who spots it can write a fix for it and send it back to the original authors. Fixes can be done within hours of a bug being found instead of months or even years for the big boys.
It can also be a great way to learn. I’m not too good at learning from being told something. But if I can get some source code from another developer and see how they completed the challenge, I can pick up technical knowledge along with tips on design methods and structures. All of this makes me a better programmer (hopefully).
So why do people spend their time writing software only for it to be given away for free? Some people want their work to be known, some link the free product into a paid service they operate, but a lot of people (me included) do it simply to help other programmers. I use some pretty heavyweight open source projects on a daily basis, they’ve saved me countless hours in projects. I feel it’s only right then that I put something back.
The only thing holding me back is I’m not sure if I’m good enough yet, but every day that goes by that argument is getting weaker and weaker. Maybe in a couple of months time I’ll have a proud blog post announcing my first open source release!