A long time ago in a galaxy far, far away … ups, wrong tale!

Our story begins in the same place where all computer related stuff happen! China? No, somewhere between Palo Alto, CA , the great wizards castle of Bell Labs and IBM’s scary dungeon-forest headquarters, in a time when music was a state of mind and Internet was just a concept in a book.

Because every story evolves around people, this one starts with a particular group of people, more specifically the guys in the SHARE user group (It was one of the first groups that embraced the open source movement.), used to exchange software.

The software that used to be shared included IBM's source releases of its operating systems, witch was a big deal at the time! Why, you may ask? Well because sharing it, was in the end, a basic necessity. At that particular point in time there were no separate portable executable binaries (or .cpl, .exe, .dll, .ocx, .sys, .scr, .drv filename extensions, for all you mere mortals) to distribute software and distributing software as the source code was the only practical solution.

Skipping a few years ahead we reach a point in time when the Internet became a reality. Software was shared via networks like Usenet, IRC or Gopher. Around these networks, word spread like wildfire and people said that Linux became some kind of a knight in shinning armor for the open source community.

Spoiler alert: in the end Linux became the undisputed king of open sourceness.

We skip some more and we finally reach the year of our lord 1998. This was a good year for open source (Somehow it feels like wine is being brewed.). It all started with the release of the source code for the Navigator browser and continued with different summits and gatherings of sorts, and in the end the term “open source” got stuck and people started using it all around the developer communities.

Ok, I think that's enough history for one article so I'll try to get to the point.

There are, nowadays, two widely used terms to describe open source software: free open source software and commercial open source software. You as a tech-fearing developer probably have used one or the other in your projects or in your day-to-day use, because nothing says good software as being able to tinker with the code. Well that’s not always the case, but we’ll face that dragon another time and dimension.

Knowing that anyone can use one of the two let’s take a closer look (Not that close!) at what the average developer started using all around the web. Open source has become in recent years more than a way to share software, for free, with the community, it become a state of mind, a way of life, that developers all around the world embrace with ease. But what’s so good about open source that people start using it more and more?

Well for starters you get to share your work with other people (How cool is that!), and maybe you have some unresolved issues with your work, that's where the community members come in and maybe some of them see the issues you tried to overcome, in a different perspective and thus provide a different solution to your issues.

But, you know, multiple heads are always better than just a single one (Brace yourself, mythological analogy coming up!), just like a hydra can damage your armor (and in the end remove from the face of the earth!) more easily using it’s multiple heads.

It’s all about people collaborating and helping each other in times of need! But that's not all you get if you embrace the open source you can also get great feedback from the people who you shared your work with, as well and get more in-depth suggestions on how to improve things. Ok, so we established on thing, that we all can agree on: open source has a lot of benefits if you know how to “benefit” from them.

But let's not get ahead of ourselves, you simple, yet promising, young padawan! The evil wizard insert evil company name here has other plans for this open sourceness that everybody is talking about. How about they only open source half of the software or as the commoners would say, open source line by line. What? Can he do that? Yes, he can and he will (We’re still talking about the wizard!)!

But that’s not fair! Well companies these days, see fairness in a whole different light. They believe that if they release bits of code and keep others with a chastity belt around and locked up in a tower of the fanciest castle at the top of the tallest mountain, they’ll protected themselves from the evil dragon (best known for it’s common name, the common Internet troll, that does nothing but criticize the work of other not contributing to any of it in any way.) that eats code for breakfast. This practice is best known as “we’ll give only the stuff we want”ism and as you may have already seen the developers are not really big fans of this practice, because they don’t have access to the important stuff that really matters and that could really be improved.

Ok, so how do we wrap this up?

It doesn't matter what term you use to describe your open source project, whether commercial of free, you need to understand some basic things about open sourceness before people start engaging in your project.

First of all don’t abuse it (The open sourceness, of course!), because if you do it’ll come back around and bite that shiny new armor you just bought and you wear around your head.

The second most important thing to remember is to try to embrace the open source movement at an early stage in the development process. Stuff like, thoroughly commenting your code or organizing your files in an orderly fashion will make your software more friendly to a future developer that wants to help or one that tries to improve the stuff you did.

This mentality of “I’ll keep it to myself” is outdated and you as a developer or multinational company should not embrace it and you should root against this practice.

Why should I do this? Because nowadays the world runs on the following phrase: Sharing is caring. If you don’t open source stuff and don’t embrace collaborative software development you’ll get nowhere and you’ll end up somewhere on a deserted island in the middle of the ocean with nothing but a stick and a rock, to survive.

Until next time, stay open source and code long and prosper! Stefan