I would agree with the author, but I am still wondering why other platforms do not win. I mean, for example, SourceForge or code.google.com. Except for the first point, most hosting sites provide exactly same functionalities.
Then, I guess, the point is 'easiness' or fancy/cool user interface.
In this respect, I think github's killer feature over sourceforge is its focus on people instead of projects. Perhaps we could call it an increased democratization of open source.
Sourceforge is centered around projects. You have to register and get approval for each project separately (at least you did a few years ago, it has been a long time since I last went through the exercise). This left a significant percentage of projects with descriptions of the author's intent, but no actual code. It also meant that any third party contributions had to go back through the author (who might have lost interest).
I have never seen a project on github with no code. There is no approval process. You simply push and you are up and running. Forking allows others to start contributing right away without any action from the original author (and github really encourages you to fork projects). Then the tools that github provides makes collaboration way easier than it was in the past (pull requests vs emailing patches).
I agree with all of the things the author notes, but I really think this is github's killer feature. (Hope I didn't come off as too much of a github fanboy).
GitHub has managed to take advantage of the Git hype and make code social in a way that SF or Google Code never could. Today's SF, although powering lots of high profile floss projects, feels increasingly dated with its traditional developer-user model. Google Code is arguably even less social and definitely lacking in features. GitHub, finally, looks great, is easy to use and has a lot of small yet very neat features that making coding easier.
BitBucket actually does everything GitHub does on that list of ways that GitHub supposedly changed the world. In fact, I find the BitBucket interface generally easier to use and easier on the eyes -- and, my God, the colors on the GitHub issue tracker pages are fucking awful.
. . . but somehow GitHub gets so much attention that many people think it's the only code hosting site in the world, just like so many idiots think that Ubuntu is the only open source operating system in the world.
Well, I could be snarky and say "usability" -- which, relative to GitHub, it kinda seems like BitBucket pioneered. Frankly, though, I'm not sure whether there's something BitBucket really "invented". There doesn't seem to be much that either can do and the other cannot, aside from BitBucket's ability to make unlimited private projects (of limited size, of course) where GitHub cannot.
Usability seems to be a major difference between not just BitBucket and GitHub, though -- it's also a major difference between Mercurial and Git themselves. Between the two, I find I like Mercurial/BitBucket much more usable than GitHub/Git. The big advantage GitHub/Git has is popularity, basically, and I've never really been one to let a lack of market-dominating popularity hold me back.
Anyway . . . to answer your question more directly:
I don't pay much attention to the fiddly corner cases where they differ in total functionality, so I don't really know who came up with what features first. They've both been evolving pretty quickly, from what I've seen, so I'm not sure anyone else can really say what features one has copied from the other, unless they were working on one of the two and involved in the imitation process.
I don't even see why it matters. It's like open source software: imitation is a good thing, because good features get more widely used, and everybody wins. It doesn't have to be a competition. I just don't think holding up GitHub alone as some kind of messiah really helps anything.
Everything? Does BitBucket support git? I thought it was using Mercurial.
Mercurial is great, but it's not git. It's a hassle to have to learn two ways of doing everything. (Being intimately familiar with git's required these days, especially for Linux and Android programmers. Mercurial's not.)
I don't remember "Supports Git" being one of the seven signs that Git Christ the Savior has Risen.
> Mercurial is great, but it's not git.
Yeah -- it's easier to use. I've even seen Git users suggest that newbies to the world of DVCSes coming from Subversion or CVS might want to try out Mercurial first because it's easier to pick up, then migrate to Git because that's what the people suggesting this path use.
> It's a hassle to have to learn two ways of doing everything.
That's as strong an argument against Git as it is against Mercurial. Despite this, I've learned to use both -- because "it's about the code". I just choose BitBucket/Mercurial for my own projects; otherwise, I use whatever DVCS is appropriate to the project based on what the project's core team uses.
> Being intimately familiar with git's required these days, especially for Linux and Android programmers. Mercurial's not.
Hah. There are lots of Linux- and Android-related projects on BitBucket and otherwise developed within a Mercurial framework, too -- and not everybody is developing primarily for Linux and Android, anyway. Did you notice, for instance, that the majority favorite language of GitHub hipsters (Python) is using Mercurial now? Your narrow world is not everyone else's narrow world.