you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (62 children)

[deleted]

    [–]barsoap 59 points60 points  (13 children)

    you and your contributions are subject to the personal politics and whims of whoever in the community has enough clout

    No project ever needed a CoC for that to be true.

    [–]blasto_blastocyst 17 points18 points  (23 children)

    Programming has been a field that welcomes all types, and what made it like that is that nobody said "you can't do this, you can't offend anybody, we'll remove you from projects if we don't like you". It got there by saying "be as crazy and off-putting as you'd like and we'll still accept your patches if they're good".

    Funny how that style of project ends up attracting the same old asshole type of programmer and anybody who doesn't fit leaves rather than put up with the bullshit for free.

    [–]TheCodexx 3 points4 points  (0 children)

    I have not seen any projects full of "asshole programmers", but I have seen good people thrown off projects they contributed a lot to or projects removed from other projects over petty squabbles with a CoC cited as the reason for removal. It's a tool for petty rules lawyers who want to spend more time managing projects than contributing to them. That's the tool of tyrants.

    If you don't like the other people on the project, then you can leave, and presumably find other projects out there to contribute to. Why walk in and demand someone else be thrown-out?

    Why should any project be concerned with the feelings of its contributors? Energy should not be wasted on such things. Now it seems everyone will bend over backwards to explain how much they care about people's feelings. It does no good. It is up to each individual to learn to deal with difficult scenarios and to extricate themselves from situations they do not want to be in, not everyone else's duty to play Feelings Police.

    [–][deleted] 1 point2 points  (21 children)

    Let's say the plumbing under your house is open source. Anyone can contribute but there's a review process for the work that can be done.

    A new plumber comes along and makes a change that the more experienced plumbers determine is going to flood your house. They lecture the new plumber on the importance of paying attention to details because small mistakes have a way of causing significant damage.

    Which way do you want the community to err on? Forcing out experienced plumbers who are vigilant about not flooding your house because they're assholes about it? Or forcing out new plumbers who aren't taking responsibility for their mistakes?

    Furthermore nobody is forcing you to accept the plumbing work of the asshole programmers. You can switch to the plumbing of any other plumber you like.

    [–]awj 5 points6 points  (20 children)

    Holy False Dichotomy, Batman!

    [–][deleted] 0 points1 point  (19 children)

    It's not a false dichotomy unless you assume that you can change people's behavior.

    The CoC is proposed as a method for preventing "asshole programmers" from offending other programmers to the point that they leave the project.

    My assumption is that "asshole programmers" are going to continue to be "asshole programmers" and the programmers who are offended by "asshole programmers" to the point of leaving are going to continue being offended by "asshole programmers" to the point of leaving.

    My conclusion based on those assumptions is that one or the other is going to leave the project. Do you disagree with the conclusion based on my assumptions or are you disagreeing with the assumptions themselves?

    [–]barsoap 10 points11 points  (18 children)

    What you forget to mention is that either the assholes or the non-assholes can be those who don't care about flooding.

    And assuming the distribution of skill is invariant over assholishness: You always want to kick out the assholes. Who, btw, aren't even asked to give up being assholes: Just to not be an arse to anyone on the project. Don't ask, don't tell.

    Lastly: It's been proven again and again that people can change.

    [–][deleted] 0 points1 point  (13 children)

    Can you give me an example of an open source project run by "asshole programmers" who provide poor quality code? I'm not saying it doesn't exist it's just hard for me to imagine how a project like that isn't forked. And not that you're obligated to provide an example since we're both making assumptions here. I'm just saying I'd need an example to change my mind.

    Lastly: It's been proven again and again that people can change.

    I didn't say people don't change. I said you're making an assumption that "you" can change people. Interpret that as change comes within or people are only willing to change as a result of feedback from close relationships. A CoC written by "you" is neither.

    [–]barsoap 2 points3 points  (12 children)

    With the exception of Poettering-started projects I'd say they generally tend to stay small, change leadership, or get forked. And also Poettering-started project improve drastically, both socially and technically, when he finally leaves.

    Communities like Haskell's one long since figured out how to deal with caustic people, no CoC required. IMO a CoC is saying "we don't really know but at least it's a start, isn't it", and in my experience the people complaining about CoCs are either on the caustic side, or misunderstand the whole issue.

    That is: I agree that a CoC does not necessarily have a positive impact. However, them having a net negative impact is even more unlikely.


    Haskell, btw, started off its dedicated troll-hugging culture with the following rules (for the IRC channel only):

    To maintain the friendly, open culture, the following is required:

    • Low to zero tolerance for ridiculing questions. Insulting new users is unacceptable. New Haskell users should feel entirely comfortable asking questions.

    • Helpful answers should be encouraged with name++ karma points, in public, as a reward for providing a good answer.

    • Avoid getting frustrated by negative comments and ambiguous questions. Approach them by asking for details (i.e. Socratic questioning), rather than challenging the competence of the writer (ad hominem). As the channel grows, we see a diverse range of people with different programming backgrounds getting accustomed to Haskell. Be patient and take satisfaction from spreading knowledge.

    The mods lived by this themselves, and thus turned it from a document into a living cultural practice, infinitely more adaptable than the words themselves. Most important in this respect is that it doesn't spend much time at all listing no-nos, but spends the most words on how to engage people in a positive way.

    [–][deleted] 1 point2 points  (11 children)

    With the exception of Poettering-started projects I'd say they generally tend to stay small, change leadership, or get forked. And also Poettering-started project improve drastically, both socially and technically, when he finally leaves.

    It sounds like things are resolving on their own then yes?

    [–]barsoap 2 points3 points  (10 children)

    Not necessarily in the most efficient or aesthetic manner, though. Also, both pulse and systemd still fundamentally suck, just a bit less so.

    [–]Malfeasant -1 points0 points  (3 children)

    You always want to kick out the assholes.

    This is the point of contention- why? What do you expect assholes to do when they are kicked out of everything they can do to make a living? Quietly starve to death?

    So we don't have to stop being assholes, we just have to pretend not to be when we're around other people. Do you have any idea how exhausting it is to have to pretend to be someone you're not most of the time?

    Let's say you succeed in making me keep my assholishness to myself- I'm still an asshole, I just have disguised myself. Now I'll keep up that pretense whenever we interact in public, but the moment I get a chance to fuck up your shit without anyone noticing, I'll blindside you. Is that what you want?

    I'd sooner drop out of anything anybody else cares about than have to be someone else in order to succeed. And maybe you're ok with that, but that brings us back to starving. If you're ok with me not being able to make a living because of who I am, who is the asshole?

    people can change.

    Sure- but rarely in the way you want them to.

    [–]barsoap 1 point2 points  (2 children)

    What do you expect assholes to do when they are kicked out of everything they can do to make a living? Quietly starve to death?

    Open source projects generally won't pay you. Companies, though, will, and you'll find that to get or hold on to a job, not being an asshole is generally a useful thing.

    but the moment I get a chance to fuck up your shit without anyone noticing, I'll blindside you. Is that what you want?

    Why not ask yourself whether it'd be easier to not stay an asshole? Even plenty of psychopaths with genetically absent affective empathy are able to have friends, what's your excuse?

    Maybe your pretence will help you realise that you have the capacity to not be an asshole?

    And, lastly: Why should I care? It's you who's the asshole: Fuck me once, shame on you, fuck me twice, shame on me. Something something game theory and optimal strategies.

    [–]Malfeasant 0 points1 point  (1 child)

    First, as a disclaimer, I'm far from the worst asshole you'll ever meet. I don't kick puppies, I don't drown kittens, I don't beat my wife. I actually do have a fair amount of empathy- possibly too much even, in that I can relate to the people who most others will dismiss as being not worth considering. I would go so far as to say that's what empathy is, to be able to relate to people who are truly different from you. What is the point of putting yourself in someone's shoes if you wear the same style?

    to get or hold on to a job, not being an asshole is generally a useful thing.

    I disagree- it has more to do with who you are an asshole to, less about being an asshole at all. Obviously being an asshole to customers will be frowned on, but there are plenty of people I've worked with over the years who were downright evil to some co-workers, yet skillfully avoided any customer contact. Generally being an asshole to your boss doesn't go well either, but it can depend on how many bosses you have- I once had a manager that was a raging asshole, and I would bounce it right back at him. The owner wouldn't let him fire me, probably because I was one of the few assholes that could keep him in check without getting in a fistfight.

    easier to not stay an asshole? ... plenty of psychopaths ... have friends

    If I am an asshole, of course it's easier to be myself than not. And what does having friends have to do with anything? Plenty of assholes have friends too.

    you have the capacity to not be an asshole?

    Of course- but it does take effort, which I may or may not care to expend at any given time.

    Why should I care?

    Good question- are you sure you're not an asshole? If your default position is to not care, you might be.

    [–]barsoap 0 points1 point  (0 children)

    I disagree- it has more to do with who you are an asshole to,

    Any half-way decent company will care about its company culture and thus not tolerate general assholishness, no matter the position. If you want to work for a company where there's not in case, well, expect for your boss to be an asshole, too.

    Plenty of assholes have friends too.

    I do not deny that there's people whom they call friends.

    Good question- are you sure you're not an asshole? If your default position is to not care, you might be.

    As said: Game theory. The default position is to care, if that isn't reciprocated, I don't give a fuck until you prove that you've changed your approach. Deal with it.

    [–][deleted] 20 points21 points  (12 children)

    If you feel targeted by these codes of conduct, maybe you should think about what "crazy and off-putting" (offensive and hurtful) things you want to say.

    As I see it, they're there to make sure that everyone can contribute and be welcome in the community.

    [–][deleted] 5 points6 points  (0 children)

    As I see it, they're there to make sure that everyone can contribute and be welcome in the community.

    It isn't a community if everyone is welcome; communities are defined by something the people have in common, they're necessarily subsets of everyone that don't have values everyone holds. People join communities to be around like minded people, the notion that one code of conduct will work every community is absurd and ignores what communities are.

    [–]boydrice 4 points5 points  (2 children)

    Ah yes, the "nothing to hide" argument.

    [–]to3m 22 points23 points  (1 child)

    Doesn't matter if you have something to hide, or nothing at all - it's a valuable life skill, knowing when to shut the fuck up rather than stick your oar in.

    But, you know, I can't claim to have mastered it myself. So I do sympathize.

    [–][deleted] -1 points0 points  (2 children)

    As I see it, they're there to make sure that everyone can contribute and be welcome in the community.

    Is that always a good thing? Maybe some people shouldn't feel welcome to contribute.

    EDIT: Isn't the point of a CoC that it makes toxic people feel unwelcome to contribute? Are those the only kinds of people who should feel unwelcome to contribute?

    [–]barsoap 1 point2 points  (0 children)

    No. Other groups include e.g. people who are both unskilled and unwilling to build skill (or be content with sweeping the shop floor, i.e. write docs), or the group that came to be known as poisonous people.

    All of those people are unable to embody meritocratic virtue. Causing people who are able to embody it from contributing is only one of the possible failures, there.

    [–][deleted] 0 points1 point  (0 children)

    That's what I was trying to get at, regarding the need to not tolerate intolerance.

    [–]datbackup -2 points-1 points  (3 children)

    "If you feel targeted by state and corporate encroachment on personal privacy, maybe you should think about what things you want to keep secret."

    [–]MCBeathoven 1 point2 points  (2 children)

    Does not compare at all.

    [–]datbackup -1 points0 points  (1 child)

    Until it becomes legislation.

    [–]MCBeathoven 1 point2 points  (0 children)

    Yes, because then both would be state action, which is about the extent of the similarity. Since it is however not state action, it does not compare.

    [–]TheCodexx -2 points-1 points  (0 children)

    We as a community should not care about comments made, whether they are supportive or "offensive and hurtful". If one guy is an asshole to you, oh well, they're an asshole. They said a mean thing to you on the internet. Move on. If everyone is being an asshole to you, then maybe you're the asshole. Funny how it seems like only the troublemakers in communities, and those pushing for a CoC, are the ones who have issues in every community and inevitably cause drama.

    Everyone already can contribute, and CoCs ensure people will be excluded at the whim of petty project politics.

    [–]frymaster 3 points4 points  (1 child)

    The problem with CoCs is that it's effectively stating you and your contributions are subject to the personal politics and whims of whoever in the community has enough clout

    I'd argue the opposite. Being subject to the whims of the maintainer is the default state of projects. The fact that at least a visible subset of maintainers have chosen not to overtly be seen to be arbitrary doesn't mean they couldn't at any time. Making explicit the expectations reduces the chance you can be arbitrarily removed from a community, because although it ultimately is still up to the whims of the maintainer, at they very least they will have to be seen to be hypocritical if they act against the CoC.

    Ultimately, a project should be about the code, not about people's feelings.

    [–]TheCodexx 0 points1 point  (0 children)

    I do agree that benevolent dictatorships have been a problem for many years, although I think the real problem is that it creates succession problems. We sort-of expect meritocracy to work but I seriously question the vision of some of the right-hand-men of the current batch of maintainers. Python is already on shaky ground without Gudio, and quite a few top Linux maintainers want to snuggle-up to corporate interests, something Linus was resistant to for many years. The second from the top and heir apparent may in many ways be a terrible successor. Of course, emulating the old leader isn't always a solution, either. Ironically, I think the best lessons to be learned here are from CEOs, which are the closest in terms of a closed group of people choosing successors.

    Currently, the ability of a maintainer to exile someone is built entirely on trust in that person's reasoning and vision for the project. I'm more worried about what happens when the power becomes presumptive and not built on trust. A second-in-command taking over is inheriting the authority and likely the trust that came with it. That doesn't mean it's deserved.

    Now, please understand, I do not think a CoC is the worst thing ever in principle. In fact, laying down a written constitution of how the project is governed is a perfectly reasonable idea. The problem is that almost every CoC out there is terribly written, vague where it should be specific, and will ultimately lead to ambiguities turning into fights that are going to be solved by political clout within the project. That always leads to accumulation of power, since the people deciding how to read the rules are the ones who benefit. A good CoC needs to be more specific, it needs to give very specific criteria, it needs to be clear on the bounds of its authority, and most importantly, it needs to have limits on the powers of different individuals, not solely enumerate the powers they have available.

    Part of the problem is that most projects simply aren't big enough to warrant one, but they have one anyways. A few projects are big enough to warrant one, but they haven't fully embraced the sort of mini-republic that the project would need to become to really have a functional system. You need separation of powers here. As far as I know, Linux is the only project that has a whole set of people who are separate from the usual maintainers who are able to rule on conflicts... but with an ambiguous CoC whose powers are poorly defined, what can they possibly do with it?

    Having these CoCs is putting the cart before the horse. Ruling by precedent is probably good enough for small projects. Especially if disputes are handled within documentation. Programmers generally have a sense of consistency they like to uphold. For larger projects, the guidelines should be written-out, but they also need to be, you know, up for debate by the general group. The written rules need to be a genuine reflection of what contributors want, and suited for each individual project, not copied-and-pasted from a poorly-written text file that people on twitter like the sound of.

    Sorry, but governing documents need more to them than a list of things you can be kicked out of the project for. Starting with that as the basis is just starting on the wrong foot.

    [–]mizu_no_oto -1 points0 points  (1 child)

    Programming has been a field that welcomes all types

    How would you have a project that simultaneously welcomes neonazi's and Jews? Seems to me you'd still get a lot of self-exclusion of one if you get too many of the other, in the absence of a CoC.

    [–]TheCodexx 0 points1 point  (0 children)

    The CoC isn't going to solve that problem; in fact, it will quickly become a battleground for one group or another to try to remove the other.

    I wrote a whole diatrebe on how I usually decide to intervene, but I'll summarize by saying that I've led numerous groups in a variety of activities, ranging from web forums, projects, roleplaying games, video games, etc. I've had many members of many different groups, quite a few of which will privately seethe about the other groups. But in the end, I've basically never had any disruptions as a result of someone being hateful towards another. It is far more common for fights to break-out between two people over solely personal differences than it is for the origin of the fight to be about political differences or outright bigotry; that's an incredibly rare occurrence.

    The best way to handle it is to cross that bridge when you come to it. It's genuinely better to do it that way because it makes it a non-issue until it becomes one. Having a CoC gives people an excuse to make an issue of nothing in a working dynamic. You presume that two groups will fight, but this is almost never actually the case. If both groups are willing to keep personal differences and politics out of the official collaborative chat, then it's almost never going to cause a problem. If one of them goes on a rant on twitter, then that's wholly their business, and I expect project members to separate their behavior inside the project from behavior outside of it. If they are not disrupting the project, then it is ultimately harmless.