When I first started programming around six years ago, I held a huge belief that all the code that I created was mine. Everything that I compiled was mine. Everything that I made was mine. All of this stuff was to be maintained, distributed, and advertised by me. Everything was mine. Recently, however, this attitude has changed.
After installing Linux on my laptop and using it exclusively for the past year, I have come to love the world of open-source. It’s a beautiful place. It’s a world of free software, free code, and a very, very friendly and helpful community. Something doesn’t work in your software? Why not take a look at the code, edit it until it works, and then submit the changes to help others around the world? It’s a really, really beautiful system. It’s also a system that I really want to be a part of.
Because of this, I have started uploading most of my projects to GitHub. Now, anyone who is interested in the projects that I am working on can download my code, fix my bugs, and publish it to the world. What’s the reward for doing this? In my opinion, besides personal satisfaction, it’s the fame.
There’s a great feeling behind having your name on code. You start to become widely known throughout the coding community and your contributions on projects start to become valued. People get excited to have your code in their projects. On top of that feeling, it’s simply awesome to have a huge list of projects that you’ve contributed to.
What about the money, though? What about the commercialization of software? Well to that I have a very interesting relationship. I feel that if your code is so groundbreaking and so revolutionary that it can make you a large sum of money, go ahead and privatize it. However, if this revolutionary code would be of benefit to other projects around the world, I am under the strong opinion that the code should be open-sourced. This allows everyone to use this new ideas in their own projects, benefitting the entire computer science community as a whole.
However, there are problems with this. A prime example of these problems is Gabriel Cirulli’s 2048 . After a post on hacker news, Cirulli’s game became extremely popular. The game, being open source, spawned several hackers who wanted to figure out how to solve the game. Soon enough, 2048 AI, exploits, glitches, and tricks were all exposed. There is no problem with this. The problem is due to the popularity of the game. Because of the popularity, a few people took the source code of the game and ported it to mobile platforms, which many people downloaded. Instead of retaining credit to Gabriel, however, these programmers decided to take the credit and put ads into the game, capturing large amounts of revenue for themselves as unknowing mobile users downloaded these copies of the game.
If we want the open-source world to flourish, we must not allow events like the 2048 disaster to occur. There must be an unsigned agreement among programmers about the ownership of code. Although people can edit it in any way they want, people should give credit where it is due. Since the aspect of code-fame is one of the most appealing things about open-source, I think that the disrespect of ownership is our primary problem with open-source code. I believe this is what is preventing us from moving forward.
In order to show my support for open-source, however, I plan on open-sourcing most of my projects from here on out. This can be seen with my recent GitHub additions update.net and SQLiteDatabaseManager – Both of these projects originated as supporting libraries for an application that I am making for a client. I figured that it would be in everyone’s best interest if these small supporting libraries are open-sourced. The idea is simple. I open-source the libraries, other people may use them. Other people fix any bugs in the library, my client benefits since they will always be getting the latest versions of the libraries.
I really hope to see the open-source movement only gain more popularity as time goes on.