Thursday, January 18, 2018

GitHub Giveth; Wikipedia Taketh Away

One of the joys of administering Free-Programming-Books, the second most popular repo on GitHub, has been accepting pull requests (edits) from new contributors, including contributors who have never contributed to an open source project before. I always say thank you. I imagine that these contributors might go on to use what they've learned to contribute to other projects, and perhaps to start their own projects. We have some hoops to jump through- there's a linter run by Travis CI that demands alphabetical order, even for cyrillic and CJK names that I'm not super positive as to how they get "alphabetized". But I imagine that new and old contributors get some satisfaction when their contribution gets "merged into master", no matter how much that sounds like yielding to the hierarchy.

Contributing to Wikipedia is a different experience. Wikipedia accepts whatever edits you push to it, unless the topic has been locked down. No one says thank you. It's a rush to see your edit live on the most consulted and trusted site on the internet. But then someone comes and reverts or edits your edit. And instantly the emotional state of a new Wikipedia editor changes from enthusiasm  to bitter disappointment and annoyance at the legalistic (and typically white male) Wikipedian.

Psychologists know that that rewards are more effective motivations than punishments so maybe the workflow used on GitHub is kinder than that used on Wikipedia. Vandalism and spam are a difficult problem for truly open systems, and contention is even harder. Wikipedia wastes a lot of energy on contentious issues. The GitHub workflow simplifies the avoidance of contention and vandalism but sacrifices a bit of openness by depending a lot on the humans with merge privileges. There are still problems - every programmer has had the horrible experience of a harsh or petty code review, but at least there are tools that facilitate and document discussion.

The saving grace of GitHub workflow is that if the maintainers of a repo are mean or incompetent, you can just fork the repo and try to do better. In Wikipedia, controversy gets pushed up a hierarchy of privileged clerics. The Wikipedia clergy does an amazingly good job, considering what they're up against, and their workings are in the open for the most part, but the lowly wiki-parishioner rarely experiences joy when they get involved. In principle, you can fork wikipedia, but what good would it do you?

The miracle of Wikipedia has taught us a lot; as we struggle to modernize our society's methods of establishing truth, we need to also learn from GitHub.

Update 1/19: It seems this got picked up by Hacker News. The comment by @avian is worth noting. The flip side of my post is that Wikipedia offers immediate gratification, while a poorly administered GitHub repo can let contributions languish forever, resulting in frustration and disappointment. That's something repo admins need to learn from Wikipedia!


  1. (and typically white male) that is an unnecessary comment. Sex or gender, even if they are the majority, has very little to do with the way wiki works.

    Even the minority groups will act the same way.

    1. It's a slap I'm sure us white males can endure given our 1000's of years of privilege. That comment shouldn't distract from what is a great article!

  2. Read typical white male and then stopped reading. Tired of race card being pulled where its unneeded and solves nothing. Its racist tripe.

  3. The workflow used in GitHub was already tested before 2001 in Nupedia, which failed and was replaced by Wikipedia. Every successive incarnation (Citizendium, Knol or others) has failed as well.

    The revision control system with maintainers is nothing new, it has little to do with specific technology like Git (be it on GitHub, Gitlab or other). It was well known before Wikipedia or even WikiWikiWeb was born.

    1. The puzzle is what's the magic that makes something successful? My guess is immediate gratification made Wikipedia successful, and it mustn't be removed.

      CVS, SVN etc. did version control but somehow I never contributed to (someone else's) OS project until GitHub came along, and it's not just me. Maybe nothing's new but something is different.

    2. It's because Git is decentralized / decentralized. CVS, SVN, et al. are centralized.

  4. Wikipedia is heavily censored by an oligarchy of admins and suffers from organized team editing, inter alia. Even their physics articles contain misinformation (esp. re: the history of physical theories).

    Git's branching makes GitHub superior. Wikis have a simplistic, linear edit history (in Git terms: there's only one "main branch" with wikis). (There are some Git-based wiki projects out there, though, but they're currently very small.)

    Also, athough there are collaborative book projects on GitHub (like Mastering Bitcoin), GitBook is pretty neat.