A couple of months ago, I was switching all of my open-source projects (namely http://jscsi.org, http://perfidix.org and http://treetank.org) from (Sourceforge)[https://sourceforge.net/] to (Github)[https://github.com/], why?…yet another blog-entry comparing github and sourceforge.
First, I was really loving sourceforge because:
- Great to have mailinglists
- Webspace was available for project-websites
- Easy user- and group-management
Besides, I was really on SVN and Mercurial for SCMs so I was kind of hesitating of getting into touch with yet another system….but…
Getting into touch with Github
…somehow people got interested especially in http://jscsi.org. Unfortunately, I was not able to handle any contribution in-time. As a consequence, collaborators (most probably) got disappointed since their work was blocked due to my lack of resources. So what happened after all, we used many features of Sourceforge, but the project was still very centralized and thereby generating an immense overhead, especially for me.
When I first saw Github, my first thoughts were “Oh my gosh, everybody is able to copy it and do with the source code whatever he/she wants…everything will be out of control”. My visions were a combination of mutating projects together with entire loss of control.
But after a while, I realized: “Cool, everybody can do, fork it, modify it, and push it back…and it is entirely supported by the underlaying SCM”…so I decided to move.
Features offered by Github
A student pointed be to the following article with which I entirely agree: http://www.itworld.com/it-managementstrategy/227477/has-open-source-outgrown-apache-way .
- People within this platform have the ability to access any kind of source code. They can modify it to their needs and push it back. It is the decision of the maintainer to take the chances or not. But the idea of Pull Requests is as simple as powerful and really deserves the term “social coding”.
- The API is great: Mylyn adapters, maven-plugins as well as simple access to webspace. The webspace itself is a branch, making github a platform, which has exactly all functionalities needed: Hosting, managing and promoting own open-source software.
- The look is simple, not overloaded and easy understandable. Regarding Sourceforge, you find the right buttons at the right time.
- Even if the main paradigm relies on Pull Requests, Github offers easy administration and management of groups and organization making fixed collaborations easy and simple.
I just realized that google offers many of the denoted benefits as well, but their platform seems to be overloaded (offering multiple different SCMs), the API is not as sophisticated as well. For example, they offer Pull Requests too. Unfortunately, this is not clearly visible / accessible: I was just finding it by coincidence.
Luckily: Github as well as Sourceforge and Google Code support nowadays all Git. This makes cross-portal synchronizations easy and scalable. Nevertheless, at the moment, I cannot think on any better platform for own software like Github:)