I think Github is up there as one of the greatest contributions in producing software there has been since the creation of the web but I thinks it has some problems.
The main crux of my problem is the centralisation of all the code even from big companies such as google and important projects like python. I can see why the large centralisation of the community in one place allows for easy management of reporting bugs instead of using some other system weather google groups or a official bug tracker like JIRA.
The problem will snowball in the someway communities do, Github is the most active so thats where I will upload my code to and if it becomes even slightly popular people can fork it in a reliable way make changes and contribute back.
When it comes to services such as Facebook or google I start to get concerned with how monolithic they become and what the future is as large monolithic companies start to dictate how to communities see the new TOS and this post by tg@
Also with everyone using one single site to host the code we back in the days of having a single point of failure, if Github goes down so does any productivity in the workplace or community cant organised. Many communities combat this by having the community discussion of github in services like glitter or more old school irc.
Git itself is designed to be distributed and no relie on a single point of failure so why should we allow github to be the central point of failure with code hosting.
I am more in favour of some sort of federated service similar to the matrix chat application or diaspora / hubzilla. Where many people host a git server e.g gitlab but if the project is public then you could search on any node and find the project submit an issue comment on some code etc. The code would probably live on the single server where you created the project with the possibility to migrate it.
Anyhow some some of my random thoughts on the subject, I problem will keep using it in the same way I still use Facebook Twitter and google.