Disclaimer: I work for Mozilla and am a Node.js core maintainer. The opinions expressed here do not reflect those of Mozilla or the Node.js project.
After watching the events unfold the last 2 days I decided to sit down, with my two cartons of Trader Joe's eggnog, and simply express with all humility and confidence what libuv@47d98b6 definitely was not.
Over the last year I have had the pleasure of being mentored by Ben. He is largely responsible for my initial major involvement writing performance improvements for Node, and has easily surpassed triple digit hours guiding my ridiculous ideas to fruition. My obsession with performance has even become somewhat an ongoing community joke. Because of his time and training I'm now in a position of being able to speak to many of you about the crazy and awesome new things happening in Node.
At the same time I've learned a lot about Ben as a programmer. Mostly that he is very precise with his code. Commits have always had to fill one of two criterion. 1) They are an acceptable code change (with accompanying documentation, tests, etc). 2) Documentation specific changes must clarify a technically incorrect point. So while his wording may have been a bit terse, I wasn't surprised the PR was closed. As for the revert of the initial merge, my only comment is that it wasn't for the reasons the majority of the community very clearly believes.
To clarify and demonstrate my previous point I would like to make an exhibit of his commit history. First we'll examine Ben's use of male specific gender pronouns in libuv:
for i in `git log --author="Ben Noordhuis" --oneline | cut -d' ' -f1`
do
git show $i | grep -i '\<he\>\|\<him\>\|\<his\>'
done
This grep
is meant to be as loose as possible to also catch any gender inclusive pronouns in the use of commit messages. So there is some actual code we need to filter through. Once this is done we can see only three results. The first two are from when Ben merged libuv stable branch to master. So, of his 1062 commits there is only once case of using a gender specific pronoun that dates back to Oct 2012.
Moving to Node core. This proves to be more difficult because of the large number of dependencies. But if we trudge through every commit message, searching every code comment, we find one case. From libuv. The same comment that we had just previously seen. So, if Ben's 1342 commits in Node core he doesn't have a single case of using a gender specific pronoun.
Based on this I would like to ask the community one favor. Please stop treating this as a case of sexism and gender preference. It absolutely is not. Those who have engaged in this discourse without empirical evidence are an equal threat to the community's health. This type of angry outcry and incessant flogging via social media only ingrains fear. Tweets stating they wish to have had the pleasure to fire Ben, or a stream of cleaver quibs stating what a leader is and isn't, aren't helpful to community growth.
So, one last humble time, please stop.
At no point did I ever think that Ben was sexist. I also don't think the majority of other people that took offense at the issue thought so either and if they did I think the reaction would have been much more intense. Nor did I see anyone upset at the initial use of the gendered pronouns so much as a desire to remove them.
Being dismissive the way he was on technical issues is arguably justifiable (I still don't buy that it's a good practice) but this issue was, very clearly, emotionally important to a lot of people. The behavior people took issue with was that Ben showed very little regard for their feelings about this change. This is, I believe, what Bryan referred to in his post as empathy. Bryan didn't think Ben was sexist just lacking in empathy towards a number of people that were passionate about gender issues and trying engage in libuv in order to improve it.
The problem wasn't Ben's own views on gender but in how his behavior would predictably effect those that did feel strongly about them and were attempting to engage in libuv. No part of the contribution process requires him to be dismissive of new contributors or to chastise others in commit messages and the fact that this may have happened before isn't much of an excuse.