I can't help but feel that NCoC isn't scaleable. "Let's all be reasonable" is a great strategy when a handful of people are working on something and they are all more interested in getting the job done than talking about it. But it runs straight into the fact that there actually are people - particularly in the open source community that are perfectly willing to shout abuse at other contributors until they quit: https://adtmag.com/blogs/dev-watch/2014/04/linus-torvalds-ra...
I agree. I've had other devs call me all sorts, in public, and it's not nice. One Ruby committer called me an "asshat" on his Twitter feed, simply because he failed to read my pull request properly and then seemed unable to admit it. Weird. One maintainer on another project called me a troll for opening an issue. Recently, I had one of the Rubygems maintainers be rude to me for the heinous crime of… suggesting client side validation in an issue thread! I think they have the Contributor Covenant but it doesn't seem to apply to maintainers. I get this stuff so often now I'm never surprised.
Still, like many things, it's a choice between one bad thing and one worse thing, and these "covenants" and other well-meaning straitjackets have the same old free speech arguments applicable to them - it's not nice to hear people be nasty but it's worse to have some jumped up little authoritarians choose how us plebs should be "nice" while they get free reign to be horrible.
I wonder, has Torvalds ever acted like that to people's faces?
I think the really obvious point is that there is actually a middle way. You don't need authoritarian enforcement of speech, you need communities willing to just step in and say "That's not appropriate". Someone confident and willing to just step into a Torvalds rant and say "Hi Linus, let's step away from the technical issues, this isn't the way you should be communicating your issues". Often here what we're seeing is that these bad acts are actually allowed to continue by the community and only challenged by the people at the receiving end of the attacks.