116

For the past 6 months or more, I've been seeing many codes hosted at sourceforge.net as well as other hosting sites "Move to GitHub". A mere Google Search with the phrase "Moved to Github" returns several results containing the text moved to github. This is very confusing for me, and I'm wondering, why exactly are people moving? Does it mean that GitHub is better or is there some special advantage I'm not seeing?

7
  • 17
    I would also add that no site makes it easier to interact with code right away than github. Most sites hide the source-code behind several menus. Github also includes links to just about any other task you could right there on the project home without all the junk everywhere (looking at you sourceforge).
    – Xeoncross
    Sep 12, 2012 at 17:11
  • 2
    I was wondering the same thing, so I went and signed up, and pretty soon I was sold, too. I switched all of my projects over, and got all my clients on board as well.
    – lorddev
    Sep 14, 2012 at 6:28
  • 8
    because github is a nice place and git is better than cvs?
    – user1249
    Sep 14, 2012 at 13:42
  • 4
    SourceForge started adding adware to its devs' Windows binary releases; one of SF's distribution servers in Korea was compromised. Mar 23, 2015 at 6:09
  • 1
    Laucnpad is an even worse offender in hiding the source. What stands out is some "Series and milestones" -> trunk -> "Code for this series: The following branch has been registered as the mainline branch for this release series: lp:~USER/PROJ/trunk" -> yet another metadata page for trunk? where is the code? oh yes, ->"Browse the code"... Actually now I finally noticed there was "Browse the code" right on the first page. But all these alike-but-subtly-different metadata pages are bewildering. Sep 10, 2015 at 9:10

8 Answers 8

100

This is a symptom of a wider migration towards distributed version control systems.

Some websites which traditionally hosted non distributed VCS (eg Codeplex & SourceForge) were a little slow in adding support for DVCS (eg Git or Mercurial). So, people who wanted to use DVCS for their project were forced to migrate their projects over to the providers which supported them (eg Github or BitBucket). Github was one of the first to offer DVCS support and so naturally a lot of people migrated their code there in order to take advantage of it.

Those other websites are only now starting to catch up to DVCS (Codeplex for example now supports Mercurial & Git), but they are still a way behind in terms of features such as forking and submitting pull requests. To really take advantage of DVCS Github and Bitbucket are still the best options.

12
  • 47
    Also note that GitHub's feature set rapidly became far more attractive than any other DVCS hoster offered (including self-hosting). So, part of the answer is that GitHub is sexy. :-) Sep 12, 2012 at 10:50
  • 51
    @MartijnPieters: ...except for free private hosting, which BitBucket had been offering for ages.
    – Den
    Sep 12, 2012 at 12:32
  • 17
    Other websites offer DVCS. In the particular case of SourceForge, I simply think the reason is that the website is utterly horrible, never mind the supported version control systems. Sep 12, 2012 at 12:41
  • 17
    @Den Yea, I really don't know why BitBucket isn't more popular. It has private hosting and let's you choose between Git or Mercurial (which I like Mercurial a lot more)
    – Earlz
    Sep 12, 2012 at 13:39
  • 11
    Github and Bitbucket operate on two different business models. Github offers almost its' full feature set for free and makes you pay for private repos (bar the free Bronze plans it gives to anyone with a .edu email address. Bitbucket offers both public and private hosting but charges you for the [hopefully] productivity-increasing extras. If you don't have a reason to hide you code, Github seems like the more logical model. I do think Bitbucket is coming around though -- I certainly like Sourcetree better than Github's native git GUI (not that I really use either).. Sep 13, 2012 at 8:21
45

Project hosting is infrastructure. Infrastructure exhibits network effects, which means that infrastructure gets more useful the more people are connected to it. (In particular, the usefulness is O(number_of_connections), which means that for any individual member it is O(total_members) and for the whole system it is O(total_members^2)). This, in turn, leads to an effect called natural monopoly, which means that it is natural for such a system that only one competitor will survive, since the usefulness is maximized when everybody uses the same system.

So, it makes sense to join the market leader, which is GitHub. There are more repositories, more users, more branches, more revisions, more everything on GitHub than on SourceForge, Google Code and CodePlex combined.

The interesting question is, of course, if network effects mean that the market leader automatically obtains a natural monopoly, how was GitHub able to break SourceForge's?

And the answer is, by being so disruptive that the pain of joining a much smaller infrastructure was worth it for the early adopters:

  • GitHub was the first to offer Git hosting with a feature set comparable to that of SourceForge (or at least that part of SourceForge that most people used)
  • GitHub was cool, from a UI standpoint: slick, modern Web UI
  • GitHub was cool, technology-wise: Ruby on Rails, Sinatra, Erlang, node.js
  • GitHub was Web 2.0, with its focus on Social Coding, and Users over Projects
2
  • 6
    +1 for the network effects explanation. But I really think SourceForge was much bigger than Github before the sudden rampant migrations... and you almost sound like a Github employee... Sep 12, 2012 at 14:19
  • 2
    Additionally, consider the creation of the GitHub for Windows client - for the first time, as a Windows developer, I don't feel like a second-class citizen when it comes to using Git for source control, and GitHub is responsible for that. Sep 13, 2012 at 2:03
25

I think one of the reasons is different audience: sourceforge is primarily for hosting applications, probably the most prominent feature of a project page is a link to the compiled executable (or some other download). In other words, it's targeted at users, not developers.

On the other hand, github is primarily for hosting source code, the most prominent feature of the project page is directory listing of the master branch. It's targeted at developers (either wanting to modify or use code from a project), not users.

I think this is one of the reasons why developer-targeted tools and libraries are moving to github.

15

Sourceforge also offers Git, but Github just does it better (for now).

  • Their pull request system works nicely (much better than Gitorious for instance)
  • Their recently-upgraded notification is very convenient.
  • They show the code right away

Their killer feature, in my opinion, is the "Network graph":

enter image description here

Difference with gitk: it also shows you what is going on in other people's branches (without having to pull their branches), which is very important when collaborating.

3
  • 10
    +1 We all know that in the end, graphs are all that matter.
    – Xeoncross
    Sep 17, 2012 at 18:51
  • 2
    It's also fantastic for finding the most maintained branch. I recently had to find which fork of a certain repository was actually maintained (non-trivial because the more up-to-date forks hadn't yet floated to the top of a google search).
    – beatgammit
    May 4, 2013 at 20:20
  • 1
    also, it seems github can show clone statistics, while I cannot find a single way to do that on sourceforge :( May 13, 2015 at 2:56
11

GitHub is simple, easy-to-use, easy to get started with, powerful and looks great and is Web 2.0-ish.

I use GitHub, and I find it remarkably easier to use than SourceForge, which had its power hidden behind a series of menus and required fairly elaborate operations to get anything set up. And I'm a programmer.

In addition, I think there is one more powerful feature: whether its an individual wanting to publish their first open-source project somewhere, or teams that want to collaborate on a commercial (private) project, GitHub "scales" perfectly well for almost all use cases.

End of the day, I think its about human psychology. Is the product easy to use, easy to start using, inexpensive (or free) ... does it look good and is it something I would recommend to my friends? For GitHub, I would answer yes to all those questions.

1
  • With Google code, I can star issues, which lets the devs know which issues are important to the community and helps me keep track of progress. Github only seems to have anonymous following, which can lead to comment spam (+1, me too, etc). This is significant for popular projects with limited resources.
    – beatgammit
    May 4, 2013 at 20:25
5

You've also got to take into account some pretty smashing features offered by github that I've yet to see mentioned.

  • github pages with github flavored markdown
  • github mobile app
  • github eclipse plugin
  • github for mac
  • github jobs
  • github for windows
  • github ticketing/bug tracking system
  • github developer api which allows for seamless third party integration
  • frequent UI updates/enhancements (you can literally see the changes from one day to the next i.e. search text box now dynamically expands on focus, watch became the new star button, etc.)
  • github gists (good for utility scripts, short code snippets, etc.)
  • seamless github integration via hub

Other sites may have these features but I'm pretty sure no site out there has them all.

These guys are practically everywhere...slowly dispersing their technical goodies throughout the web and desktop alike. They're only getting bigger and better as we speak and they hire the finest of engineers (they even managed to steal Phil Haack from Microsoft...go figure).

4

One additional reason that may be drawing additional developers to GitHub is that developer tools are starting to embrace git, and platforms like Eclipse now have Git support built in out of the box (applies to the packages for Java, C++ Developers, etc), making it take less steps to get your project uploaded to GitHub.

1
-1

To be honest, the most important thing of Git for myself when I see it: 1. Network Graph or Should I call the History(also commenting) 2. Branch and Pull Request 3. It's more powerful, really, I would say it's so feels like I have a secretary holding all my work, and I can told that sec to wrote down anything for me, the change, everything! 4. It's easy to rollback

Just it. Feels sexy using it

2
  • err, why I got below? Jun 21, 2016 at 12:39
  • While I think that you had good intentions in answering the question, I don't think that your answer adds much to the answer as the OP was asking for. It sounds like your answer to "Why are programmers moving their code to github?" is "because I like it". Other answers here are probably better and that's why someone downvoted. Jul 1, 2016 at 16:12

Not the answer you're looking for? Browse other questions tagged or ask your own question.