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.
@bcantrill Thank you for continuing to clarify your position.
As far as continued conversation on the subject, if it continues I'd prefer it happen online. Being able to reread my thoughts before they're expressed has always proven to be my most constructive means of communication when addressing potentially sensitive subjects. So, I request we table this during NodeSummit and focus on enjoying the massive agenda. :)
Concerning your plight on Saturday morning, I can understand the feeling of urgency you must have had to make your and Joyent's position clear based on the immediately expressed community perception. In that haste I doubt much, if any, time was taken to considerately review the post. To this I won't give much thought as I've learned -- paraphrasing from a movie I much enjoy -- not to "[...] second guess an operation from an armchair."
From your explanation I understand that, when the severity is sufficient and with specific topics such as gender bias/racism/bigotry/etc., you do not distinguish between intent and action. Please correct me if I'm wrong.
I'd like to address the topic with more candidness, and hope we've built enough rapport that you won't take offense.
First I would like to point out this situation happened on the libuv repository. Had this PR been on the Node repository I'm confident it would have played out differently.
Over the last year Ben has mentored me, and is the primary reason I am a Node core contributor. Well, that and Isaac actually suggesting I ask Mozilla to sponsor me (thanks Isaac! :-). I fully recognize my opinion is bias because of this, but I hope you can understand why I feel the need to be involved as I have and stick my neck out. Possibly even where it's not wanted, but I've always felt true community has a proper sense of loyalty. So I'm acting on it.
While Joyent does own the copyright for libuv (which I recognize is accompanied by much more that legal stewardship) the majority of personal ownership, IMHO, goes to Ben. He has written a massive amount of libuv's code and is currently responsible for 40% of all commits. Either directly or indirectly, a commit to libuv affects far more projects than would a commit to Node. It has amounted to a really amazing project, and all I've seen from Ben is his commitment to keep it as such.
Unfortunately it now seems too clear that the Joyent Engineering Team's directive and Ben's project leadership style are very different. This has culminated to where we're at today, and I'm concerned about the long term ramifications. Not for Node, but for libuv.
My honest hope is that the relationship can mend enough that Ben feels incentive to continue working on libuv, and Joyent feels his contribution is still important. So when more of the dust has settled (hopefully soon), I'd like to see this happen.
I do feel Joyent should clarify they realize Ben's actions were not out of gender bias or malice. I also have a personal opinion of what should happen on the other end of this mutual olive branch, but that's not a conversation to be had here.
Again, I offer this hopefully without offense. I have tried to tread as carefully as possible to help keep tempers low and understanding high, and I'm now entering the third hour of trying to carefully construct this post. Fortunately Isaac is usually there so I can focus on the code. Unfortunately on this one we differ in opinion so I'm left to fend for myself.
Finally, I would like to point out there has been no shortage of community members that has expressed disappointment at Ben leaving.