> Actually, there were no compromises made. I found Richard to be an absolute delight to talk with. We discussed the architectural history of Pompeii, admired his reading library, his tea collection... :)
> I think many people misunderstand his devotion to freedom as being unreasoning in his views -- as I had, not just a few month ago! On the contrary: I proposed several Emacs-related ideas that I expected him to balk at, only to find he happily considered everything, even suggesting further improvements. At no point did I ever get the feeling that I was speaking to a closed mind.
> I only wish I lived nearby so I could spend more time with him. He is truly an amiable fellow. I have no worries about our ability to find a common path in future, if issues that threaten his goals for software freedom arise.
You can get fairly tricksy with it.
Together they reduce the "psychic weight" of trying, using, and configuring packages.
They make your init.el a portable artifact of reproducible research. :)
I'm a huge fan of that style cause I can test out changes with c-c c-c and then document to my future self anything of the why. It is about the only time I use literate programming.
Emacs is still my favorite text editor when in a terminal window, which is most of the time. Maybe one day I'll really embrace vim also, but it's always been a struggle.
I've been following the discussions on emacs-devel lately and he's been showing a lot of enthusiasm for what he has in front of him, and given John's previous endeavours (use-package, eshell) I really think emacs has found a worthy successor to Stefan Monnier.
(BTW John, guile-emacs would be great)
In the meantime, if you want great Clang integration, there's Rtags.
As part of his first edict, a Code of Conduct may happen:
He also hangs out in #emacs in Freenode (username: johnw), which makes him seem very approachable in my eyes.
Given the silliness endemic to many Codes of Conduct lately, this had me worried until I read through the message. But he's really just talking about trying to focus emacs-devel@ on development, while moving tangential discussion to another list. (I guess tagging subjects "[OT]" or "[TAN]" would be a bit too retro.)
And while John may have phrased the need for a CoC as a matter of making sure things stay on topic, there are several people who are put off by the hostility of e-devel and would like it if people remained civil.
"Civility" is, IMO, the least important thing in a project. Firstly because it can't be objectively defined, since some people find being told things like "no", "this is a terrible idea", etc to be uncivil, secondly because it means that people stop calling stuff crap that is actual crap.
I also think it's silliness. If someone is an utterly disagreeable jerk, they should be ignored, or perhaps approached privately about their behavior, and then ignored if they don't knock it off. I don't see the need for a rigid, legalistic framework that can be abused as a cudgel against dissenters.
This on the other hand sounds like less about "conduct" and more about dividing the lists into topically based groups, something that has zero abuse potential and is probably always a good idea.
And no, civility is not the least important part. It matters a lot in day-to-day work. Many of us really are not interested in shouting matches as part of what we do.
Part of that is that when you disagree with an idea, you voice what the actual issue is. "This idea is crap" helps nobody, except allowing a single person (the crap yeller) to move on with their lives.
"This is a bad idea, and here's why" is a much more useful response, because the other person actually learns something, and presumably grows as a developer. They'll hopefully not make the same mistake again. This latter approach has a multiplicative component - valid ideas spread through the group. The yelling approach does nothing but alienate further contributors.
As for your suggestion to just "ignore jerks" - no. They poison the culture. They actively exclude others with their behavior. And some of us get more jerks than others, and ignoring them takes a huge chunk of energy. And bystanders will still get to see all their jerkitude, because they don't know to ignore them yet.
Of course people violating a CoC will be approached in private. All it does is give people a definition of what's OK/not OK, and a defined way to deal with it. You don't discuss CoC violations on the actual mailing list, but OOB. Every CoC I've seen so far has a well-defined procedure for handling complaints, off-list.
Unfortunately, that never is the end of it. Again, certain people are oversensitive and respond to completely civil and good faith requests/criticisms/etc with over the top behavior/accusations (see this thread for example). It's part of HN's CoC to avoid saying things that you wouldn't say face-to-face to another person.. on divisive topics like this, it usually doesn't work (again, see this thread) unless someone with the admin bit steps in to remind people to behave themselves and occasionally hand out a vacation or two.
The problem is that you've taken something that is inherently subjective to each and every person and tried to codify it. People do exist that hate being told "no", that hate all forms of disagreement and treat those who regularly do so as enemies to be destroyed. Given a vague legal method to retaliate, how do you think someone with such an unreasonable mindset will behave?
Also, it's possible to be a complete and utter asshole without ever being uncivil. I've been witness to enough Wikipedia politics over the last 5 years or so to make that declaration.
But anyways, you've just begged the question. It's not a given that the absence of CoC's results in "shouting matches", or for that matter, that their presence prevents them. In my own anecdotal-as-hell experience, they don't chase away anything but the most brash of assholes, it just results in a thin veneer of pseudo-civility over the same old crappy behavior and mindsets.
It's a lot easier to eject loud and visible assholes than the stealth ones! In other words, I think it's better to have "Don't be an asshole" as an implicitly understood element of any social group, with implicitly understood punishments for breaking that norm, rather than codifying it in such a way that it gives people ideas as to how it can best be twisted and abused.
(And should it come up: Yes, I find being accused of "sea lioning", whatever the hell that means, to be highly offensive and over the top.)
(It requires people with the admin bit actually stepping in of course. Just posting a CoC will certainly change nothing, if it's not backed.)
For the "I hate no" people - there's a reason that CoC's call out what exactly offensive/harassing behavior is.
Rules like "Don't be an asshole" work somewhat OK for small, informal groups. As project size increases, you need to get a bit more formal. As evidenced by e.g. LKML, it seems there's wide disagreement what is OK, and what constitutes abuse.
A CoC clearly spells out where that line is. It allows people to know what is acceptable, and avoid the community if that is not how they like things.
It's a common feature of large groups - the bigger you get, the more you need to spell out explicit rules. As size grows, the number of implicitly understood and agreed upon things diminishes.
E.g. you don't really need a penal code when dealing with your immediate family, but it's necessary for society as a whole to function.
As a side bar, I honestly believe that a lot of objections to CoCs stem from the fact that people are either not aware of the group size growth, or are actively grieving for the time when their group was small enough they didn't need one.
1. They tend to be heavily politicized, pushing one group's societal views on the entire community.
2. Many attempt to police people's behavior on their own time outside the community.
3. They remain remarkably silent about certain kinds of uncivil behavior, such as public shaming campaigns or importing of outside political disagreements. Often the codes are written with input from people who frequently indulge in this behavior.
4. People with objections are often steamrollered and accused of various social sins for not going along, or a code is simply imposed on the community and all discussion is ignored or closed.
If you want these codes to be established without the angry opposition usually seen, you need to address these points.
I find the problem is usually that these sorts of documents are invented by a minority that does not have the support of the majority, or they are sold poorly to the group as a whole. This is why culture changes from major group-wide issues stick and become permanent much easier in any group size. If I am member of a group and I arrive from one day and there just suddenly is a new CoC where there wasn't before I am extremely put off by it, because the CoC rarely describes the group as a whole but a particular mindset about the group by a minority.
If you are going to do a culture change properly you need to sell it to the group of both the power players of the group (the people who are looked up to informally) as well as the formal people 'in charge.' When I see it fails and when it has the most kickback is when they don't bother to try and seek out the power players of the group, because then the subgroups of the whole talk amongst themselves and can't see the reasoning and the people that are leaders in those subgroups aren't on board to bring reasoning into the discussion.
If there is a mailing list that tries to enforce a CoC on a related IRC channel and the IRC channel isn't on board with the plan- you've got a completely unnecessary clash from people not seeking out to understand the community as a whole. This also happens just as much from people trying to make an organization Agile or some other methodology. If you don't do right to understand the group, move at a deliberate pace so the group as a whole can move with you, it just is not going to work.
This is something I have dealt with many of times as both being an informal leader and the actual leader, and my direct feeling on CoC's is that if they exist they have to be deliberately vague to a point so that a discussion must occur. If they are too specific they become weapons for people until the people that are only moderately invested abandon the group along with the people that clearly don't fit the new policy depart. Sometimes this is filled out with new blood but just as often what made the community good from those that were passionate and invested in a group (# of creators to # of consumers) is completely lost. More often than not new members to the group can't contribute in that fashion for some time until they learn how they want to contribute.
If you CoC or some other policy by aggressive moderation at the beginning you set culture for the entire group, if you tack it on later you will leave some % behind but it is often not obvious to people how large that % is unless you do it in a managed fashion.
We were just talking about the fact that it's impossible to objectively define bad behavior. Sure, you can give examples of things that are disallowed but..
Let me switch tracks for a sec. It's funny this topic comes up right now; I just had to go through a yearly online ethics training thing at my current employer. The point that the slides all hammered in is that offense is something taken, not given, and if someone is offended by your speech, then it is completely on the speaker.
The CoC in this case implies that if someone is offended by what you're saying, you are automatically in the wrong regardless of your intent or actions.
I see a parallel with FOSS project CoC's here in that they don't "clearly spell out where that line is", anymore than the text states that the line exists in someone else's mind.
Have a look at Mozilla's CoC  for an example of what I'm talking about. It looks quite reasonable and in all of its forms boils down to the usual social rule of "don't be a jerk".
But still, the same problems exist. It contains a lot of platitudes and abstract language. What exactly do things like "empower others" mean, and if I shoot down someone's bad idea, am I going counter to the rule? What happens with the unreasonable person who takes "be respectful" and "Try to understand different perspectives" to mean "disagreement is disrespect" and "my perspective is correct and this should be self evident"?
In other words, if people are not adult enough to conduct themselves without a document telling them how to do this, why are they suddenly adult enough to accept that document in the completely positive spirit it was intended?
But okay, enough of the rules abuse argument. Mozilla is downright huge by tech community standards, but do you think the document referenced has actually resulted in the defusing of a single argument or negative situation? I tend to lead towards "no", because by the time you're in a position where you're close to violating one of those principles, someone on the same level as you quoting the rules at you isn't likely to be taken well. (The "anger is coming!" effect). Without someone to enforce those standards, they may as well not exist - and if we take into account that the words of community guidelines are likely not the foremost in most people's minds anyways, it takes someone with power dropping by (kind of like dang does around here occasionally in the really divisive threads) to remind people to behave themselves and to surface that guideline thought.
If it takes someone dropping by to remind people to behave themselves anyways, what exactly has the code of conduct accomplished?
I'm looking more at something like the LLVM CoC, which specifies how exactly disagreement should be escalated, and how it'll be handled.
To me, that's a major point of a CoC - if you have a disagreement what proper behavior is, it's incredibly difficult to handle at the peer level. You need an escalation path. As you say, and as I alluded to above - you need someone to enforce those standards.
What does a CoC achieve? It sets a tone for the community, spells out what is considered unacceptable, how you can ask for help with unacceptable behavior, and what the consequences of unacceptable behavior are. Or at least the kind of CoC I refer to.
I completely agree that a generic feel-good document does nothing.
It shuts the people up who demand a CoC. (Not disagreeing with anything you said).
If I get it correctly, the LLVM one (comparing to the Mozilla one) spells out more explicit examples of things that are not allowed, and provides a simpler/more clear resolution process.
Interestingly the LLVM CoC points out both of these as things that are required to make it effective in practice.
Within their own narrow experience and culture, perhaps. As soon as you start having to work with people from significantly different backgrounds, it's a whole different story.
Also, codifying "be nice" isn't so impossible. It's the basis of all laws. And laws are not programming languages. They are all subjective and open to interpretation. This doesn't make them useless.
Did you really just accuse me of bad faith for asking you for the most basic of discussion content? Asking someone to prove their stance is a negative, ever?
Is this a thing you'd accuse someone of in a face to face conversation?
Which, by the way, you did not do, which is why I asked for "concrete". A concrete example would be "This particular behavior in this particular community happened before the CoC was implemented, here's an example or two (link), the CoC addressed it in this way (link), and the negatve impacts you're worried about didn't manifest".
Just saying "Python and Pycon" doesn't even begin to provide enough context. The only Pycon example I can think of off the top of my head is the height of incivility: getting people fired for jokes.
Yes, there was a much-publicised donglegate in Pycon 2013. But there was also a waiting line for the women's bathroom in Pycon 2015. Have you seen a waiting line for the women's bathroom at any other tech conference? And guess what, both Adria Richards and the man whose name I can't find quickly via a Google search were there at Pycon 2015 and the CoC was updated to indicate how to better handle incidents.
Overall, Python has done a great work in being a friendlier place, and its insistence upon the code of conduct has in all probability helped.
...though what this has to do with people being jerks is unclear. Am I to understand the Pycon CoC addresses event coordination and venue selection? And there's a section in there about number of bathrooms? If so, now I definitely want a link, if not, I'm just grasping at straws admittedly, because I have no idea what your comment is supposed to be about otherwise.
But apparently, asking you to prove a statement is "sea lioning". Asking someone to uphold the most basic characteristic of discussion among intelligent people, the burden of proof, is now somehow seen as a thing to be avoided.
If we're going to talk about things on Hacker News, could they be please be done using the normal rules of debate/discussion instead of these bizzaro world ones?
Of course it's a self-reinforcing cycle because the conferences being hostile is clearly one thing that'd keep them out.
You:> Codes of conduct are not silliness. Almost everywhere that I have seen them implemented, I have seen a better atmosphere over that community.
This implies that you have examples from personal experience readily at hand.
He then said this:
Him:> I'm curious, could you give a concrete example of a thing that a CoC has improved without simultaneously causing implicit pressure on people to remain silent about bad ideas in a project?
You characterize this as:
You:> The sealioning is because you are requesting me to provide you with an extensive example that will satisfy your stringent needs and seem unwilling to do your own research. A more charitable approach would be to go and try to find examples on your own, explain what you looked for, and could not find. Instead, you are (in your eyes very politely) asking me to catalogue a comprehensive example that satisfies all of your bullet points to the letter.
What would be an acceptable way to you for someone to ask for you to share one of your examples?
The truth has absolutely nothing to fear from questioning.
This is almost certainly a reaction to Mozilla being attacked for the political/religious views of some of their contributors. The case of the CEO is the most well known (and granted a bit exceptional, so I won't consider it further), but due to the actual diversity of the Mozilla community people on both extremes of the relative spectrum spoke out and the CoC makes it clear when they can do so without retribution in the project, provided they don't use project resources to spread their opinion.
I think that's an example of a positive effect of a CoC.
Now, see, that is good (and frankly, surprisingly sensible given some of Mozilla's past behavior.) I'd be much less concerned about a code that spelled out things like that.
It's when CoC advocates strenuously fight against adding such terms that I get suspicious of their motives.
Nothing like that happened here.
In fact, you harmed any argument you were hoping to make by deploying jargon like this; the impression readers get is that you came to the thread loaded for bear with rhetorical tools to evade discussion.
I say this as someone who was also a bit irritated with the "codes of conduct are silliness" implication upthread.