“Our contemporary free and open source software world’s continued reliance on proprietary tools and services suggests that we failed to learn from our experience with Linux and BitKeeper,” says Benjamin Mako Hill.

History often repeats itself and the open-source world is no exception.

University of Washington’s Benjamin Mako Hill believes that the Linux community is having a “Groundhog Day” moment. During his talk at the OpenDev Conference, Hill explained how the current reliance on proprietary software continues to be problematic. His talk was prescient; a virtual Greek chorus piped up after Microsoft bought GitHub.

Thirteen years ago, BitKeeper became the standard way to manage versioning. It replaced CVS, which was groaning under the weight of a more modern Linux. While the community version of BitKeeper allowed Linux developers use it for free, it also signed into a sever that kept tabs on what they were using it for, and how they were using it. Several notable developers, including Alan Cox, who maintained large chunks of the Linux kernel at the time, refused to use BitKeeper. Instead, they had to rely on workarounds to keep their software up to date.

Andrew Tridgell came up with an alternative to BitKeeper, which he reverse engineered from the help files of BitKeeper itself. The owner of BitKeeper, Larry McCoy, found out and threatened to withdraw the BitKeeper license from all other developers at the company, which included Linus Torvalds, the father of Linux. Torvalds knew that Linux couldn’t return to CVS, so he and some other kernel developers spent the time that they could have been developing Linux itself to create brand new free software to do what BitKeeper did. The result became Git, which was eventually adopted by developers as the main way to manage their software.

GitHub soon became the way most developers interact with Git. Ironically, this proprietary system now has the same issues as BitKeeper (now open source) did. “GitHub, like BitKeeper, relies on a central server that allows [it] to monitor users,” said Hill. “GitHub, like BitKeeper, doesn’t release its server-side source code or show us what’s running on it (at least not most of it).”

Similarly, GitHub is a for-profit company that allows the developer community to use its tools for no cost as long as it’s used to build free and open source software, just like, you guessed it, BitKeeper. “Finally, GitHub, like BitKeeper, can turn any of us off without any warning without any notice and for any reason they want,” said Hill as he showed a slide with a relevant passage from GitHub’s terms of service.

This isn’t to say GitHub is doing anything inherently malicious. This is just what happens when a for-profit company offers proprietary tools for open source development. “I think it behooves us to learn from our mistakes in the past,” Hill said, “and I can’t help but think that our contemporary free and open source software world’s continued reliance on proprietary tools and proprietary services suggests that we failed to learn from our experience with Linux and BitKeeper.”

The lessons we’ve learned, said Hill, are fairly clear. While the makers of proprietary software legitimately want to help and their proprietary tools can indeed help develop open source software, the community must reject these tools from the start. To reiterate: “When we’re building free software or open source tools, we must reject proprietary software development tools,” said Hill.

Using proprietary tools undermines the whole concept behind free and open source software. “It makes us hypocrites,” Hill said. In addition, the software created is only as free as the software it depends on for its continued use, distribution and evolution.

Ultimately, Hill encourages open source developers to use free tools. He believes developers should use open alternatives like GitLab instead of GitHub. As many of these alternatives are still not quite as “good” as proprietary solutions, Hill recommends fighting for, improving and creating these free tools in order to avoid these lessons of the past.