Monday, October 26, 2015

Stop Using GitHub

As in "You all lose. Just leave. Go form your own git hosting service that'll wither and die. Shoo." The thing is, the core users can literally do just that, and where would that leave Github the business?


In my opinion, programmers should avoid using GitHub. Here's why.

Forced publicity

GitHub’s public repositories are publicly view-able by default. GitHub does this not out of malicious intent, but with the hopes that you’ll be coerced into buying a premium account. While open source is generally a positive thing, it should be your right as a programmer to decide if you want your code to be public.

The clear solution is simply not to use GitHub’s free accounts. If you are a hobbyist programmer with a small project, you probably don’t need GitHub or even version control. If you are a more intermediate level programmer and are unsure if your project is going to be a hobby or your livelihood in five years, giving your code out to the public before it may be ready is a terrible idea. In either situation, many of GitHub’s competitors offer free, private repositories, and git works fine with only a local repository.

For a more comprehensive exploration of GitHub's ToS and all the scary things they can do with it, read this article. Some of the issues described in this article will be touched upon further.

GitHub is monopolistic

Many claim that git as a protocol was designed to be decentralized; this is unfortunately not true. Git was designed to just work. However git is decentralized, and since it already has that feature it might as well be put to good use. The fact that a large majority of the world’s most high-profile open-source projects are now in the hands of a single for-profit company represents extremely poor planning on the behalf of the FLOSS community. Single points of failure are almost never desirable, and when that single point of failure is susceptible to both political and technical pressure from nation states, corporations, malicious hackers, and the open source community, it’s just a matter of time before things go very wrong. Do the world a favor and help decentralize development again by not using GitHub.

GitHub encourages ‘non-coding’

One would think that GitHub, considering the name, is designed to hold git repositories, however that’s not necessarily true; there are many other features packed in. Some of these are helpful, such as issue tracking, and others seem a bit less so. Combine this with the fact that anyone can create an account and there’s a lot of people on GitHub who do anything and everything except actually write code. Some of the most senseless, most nasty arguments I’ve seen on the Internet have come straight from GitHub, a horrifying example here. There’s simply no reason for petty politics and non-programmers to be mixed into the development process.

While this isn’t inherently GitHub’s fault, it is a symptom of GitHub being poisoned by the same problems that plague all large online communities, and the sneer of “Facebook for Programmers” is becoming a more fitting description by the day.

GitHub censors repositories

The most heinous of violations of free speech, in my opinion and the opinion of many others, is when technology itself is censored. There are several notable examples of GitHub censoring code. Whether or not the maintainers of those repositories had it coming is besides the point; there is no reason GitHub should be able to decide what you want to to say or do with your code.

GitHub’s ‘Reverse Racism’ policy

I have very little to say about this because it speaks so much for itself.

In August of 2015, GitHub released an “Open Code of Conduct”, designed to be a template for all projects on GitHub and beyond to adopt. This Code of Conduct specifies that online communities should “prioritizes marginalized people’s safety over privileged people’s comfort” by responding to complaints regarding “Offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neuro(a)typicality, physical appearance, body size, race, age, regional discrimination, political or religious affiliation” but ignoring complaints regarding such thing as “‘Reverse’ -isms, including ‘reverse racism,’ ‘reverse sexism,’ and ‘cisphobia’.” GitHub has for all intents and purposes made people who they deem ‘privileged’ fair game for harassment while promising to protect everyone else.

After several people pointed out that ‘reverse racism’ is still ‘racism’, and therefore GitHub is literally endorsing discriminating and derogatory behavior, GitHub backpedaled pretty hard and put the project on hold. However the damage has already been done, and the creators of GitHub have been revealed as having an extremely biased and toxic view of the world of software development.

Conclusion

Many of these complaints are reasonable and make sense from GitHub’s point of view. They are a company, and they will do what they must to make money. However that does not make the conditions they have imposed upon their users acceptable. Others are completely unacceptable, and reveal GitHub for what it is: a bad choice for programmers.

As explained earlier, there are several good alternatives to GitHub. If you still wish to give up all your code to an external third party, companies such as Bitbucket, GitLab and Kiln provide services similar to GitHub while fixing some (not all) of the issues discussed. Setting up your own git server is a relatively easy and educational activity, provided that you have a spare PC to use as a server or pay for hosting. Finally, git repositories work just fine on your local machine; you can use all the features of git without having to push your changes to a remote repository.

Version control and the software development community is better off without GitHub.

No comments:

Post a Comment