Earlier today, Microsoft announced they are acquiring GitHub, the popular git hosting solution that everyone uses. At least, it feels like everyone uses it. Here’s the announcement from GitHub. I use GitHub and I really like it. It seems to be an integral part of the Go ecosystem and open source software at large. I actually like Microsoft, but I’m not happy about this turn of events. The design and user experience currently present in GitHub are in line with what I want from my version control hoster. Also, I just really like that GitHub has been a neutral third party that everyone can collaborate in. Now that is changing.

So what does this acquisition mean for GitHub? I really don’t know. My hopes are that Microsoft will not change anything drastically. If they want to add some integrations to Visual Studio and their other products, fine. But please do not remove any of the existing features or integrations. I don’t think Microsoft will enact any anti-competitive practices, but who knows. When they acquired LinkedIn, they kept it pretty much the same. After purchasing Xamarin, they actually bundled it with Visual Studio and made it free. So maybe non-corporate devs will actually get some free private repos thrown their way after this acquisition. Your guess is as good as mine.

A lot of devs appear to be taking this pretty hard, calling it the death of GitHub and jumping ship to GitLab. GitLab congratulated GitHub on the acquisition and then promptly boasted that they are seeing 10x the number of daily repos being imported.

I’m probably going to take a look at GitLab myself, but I doubt I’ll be moving soon, unless Microsoft does something drastic or the Go community really starts to lean heavily on GitLab. I’m more concerned about how this will affect our dependencies. Will devs play nice and leave their public repos up? Or will we start to find missing repos when we’re looking for some dependency we’ve been using? Will we need to change all our imports in our Go programs? Will our builds break? These are the questions that have been plaguing me today.

We could always fork our dependencies, but that just seems kinda clunky and like we’re introducing an unnecessary middleman. We could check in our dependencies, like the vendor folder in Go, but there are already mixed feelings about doing that. I’m hoping the community plays nice and makes this transition as painless as possible. It’s happening though and there’s nothing I can do about it but look to the future. I’m hoping Microsoft does the right thing for the open source community and developers in general.