This isn't restricted to open source project leaders, or even open source developers. You'll find the same childish elitism in pretty much every field of human endeavor.
Programmers certainly do it. Laughing at noobs and being mean to them is pretty much the sole purpose of IRC, unless I'm mistaken. Surfers do it. Climbers do it. I've even seen rocket scientists do it.
The interesting thing is watching which members of a given group behave this way.
It's not everybody. There's a certain skill range where you find this behavior. Generally it ranges between "reasonably good" and "better than most people I know", and it grows exponentially in that range (though, again, only in people who are given to such behavior).
But there it stops. Once you hit a threshold of "better than pretty much everybody in the world, even those who have dedicated their life to this stuff", you don't really see this sort of elitism anymore.
I live in the climbing mecca of Fontainebleau, and can watch first hand as 7a boulderers from around the world descend and act like jackasses trying to scootch their butts off the ground on problems that are hard (but not world class) while scowling with superiority at the lowly rabble that might dare touch the holds of their project. It's best to simply wait until they give up before going over and doing the problem.
But occasionally you see a guy working an 8a. That's pretty stout by anybody's definition (even at font), but he's not shouting or swearing at it. He's just calmly doing his thing, uninterested in being the center of attention, and more than happy to talk to anybody who walks up without the least hint of snoot.
I think you find the computer programming equivalent of that guy from time to time too. He's the "bourne shell" guy that another comment mentions downthread, and he's above the elite.
The cool thing is that you don't have to be as good as him to act like him. All you need do is not be a dick.
I think it has to do with the level of mastery. At some point, when you become really good at something (almost anything), you realise that a lot of your own knowledge now comes from explaining the basics to people who don't know anything. By forcing yourself to redo the basics, you get fresh insight on a level that someone new to whatever activity simply can't appreciate because they don't have X years experience with which to consider things.
I know that I now love teaching bash shell and C. I know that I am not the most talented shell guru or C programmer, but a lot of my knowledge now comes from answering questions from beginners that I hadn't previously considered (in bash, e.g., how can I tell within a script if the standard input comes from a keyboard or a file, or in C why don't you require the argument to return to be in brackets?) Questions that aren't necessarily hard, but that I hadn't asked when I was learning and now need to figure out the answer to on-the-fly. I now love teaching beginners because there's going to be the chance that they ask a really interesting question and I'm going to learn something myself.
10 years ago I would have hated that, because I wasn't comfortable in admitting what I didn't know - partly because I was still finding out that I didn't know things on a daily basis. Learning has now become a delight, rather than something to be achieved to get to the next thing.
I had the opportunity a few years back to work with Jeremy McGrath (many time motocross/supercross world champion) on a commercial shoot he did at our local motocross track. He was modest and pleasant to talk to. He treated me as just another rider, despite the obvious difference in our skill levels.
I also later had a chance to meet Jean Sebastien Roy, a slightly less famous but still top level rider, when he came to do a promotion for KTM. You'd never know from either of them how good they were until you actually saw them ride.
This contrasts heavily with some of the "experts" I ride with every weekend during the summer. I once had a competitor refuse to shake my hand and scoff at my attempts to introduce myself. It is a huge difference in attitude.
By the way, hello HN crowd. I've been a daily reader for several months but never found a topic where I felt I had something useful to post. I hope this has been relevant and useful.
P.S. I ended up beating the guy who wouldn't shake my hand, which gave me a petty feeling of satisfaction. Childish, perhaps, but I'm not perfect.
Sounds to me you became really good at explaining. And skill in explaining stuff is a much better predictor of not-being-a-jerk than mastery of anything in general.
It's pretty difficult to explain things well and be a jerk at the same time!
(although my pope-hat's off to those that manage to do both ;) )
>At some point, when you become really good at something (almost anything), you realise that a lot of your own knowledge now comes from explaining the basics to people who don't know anything. By forcing yourself to redo the basics, you get fresh insight on a level that someone new to whatever activity simply can't appreciate because they don't have X years experience with which to consider things.
I'm not sure it works that way. I'm very good at one or two things myself, but I don't really find that any additional knowledge now cames to me from explaining the basics to newcomers.
Rather, it's one of these (depending on the person):
1) when you become really good, you realise how much you still don't know, so you don't find it insulting of hilarious that other people don't know even the basis...
2) people motivated and devoted enough to get really good don't really care for the politics and the elitism anyway. They just care about the subject matter, and have no problem explaining it to a newb (and some love their field so much, you can't get them to STOP explaining it!).
I had the same experience in the dance world. I was privileged enough to be able to train with national and world champions. At the lower end of that scale, people were incredibly full of themselves.
Work with somebody who's recognized world wide? She's the nicest person ever. (Even though I clearly wasn't as good as she'd have liked me to be ;)
It's inspiring to work with people who don't have anything to prove to you, but have more than enough to show you.
Yes, this is because the experts don't feel threatened by noobs. They know they are actually experts, so they don't need to stoop to the level of picking on noobs to make them selves feel like experts. It's the "nervous middle classes" that feel a need to pick on noobs to reassure themselves.
PG wrote an article that describes this same phenomenon vis-a-vis nerds and popular kids in school:
If I remember correctly, the most popular kids don't persecute nerds; they don't need to stoop to such things. Most of the persecution comes from kids lower down, the nervous middle classes.
Generally it ranges between "reasonably good" and "better
than most people I know" [...] [b]ut there it stops.
I don't believe it's necessarily true. It has more to do with how they think they are perceived. Look at Kobe Bryant, one of the best basketball players to ever live. I've seen videos where someone will challenge him, "I'll get 2 before you get 10". Kobe takes that as disrespect. This person doesn't realize how good he is. He then goes on to dominate the 1-on-1, aggressively trash talking throughout. Try upsetting a doctor by calling him/her "mister"/"miss" repeatedly.
Some surgeons (who, these days, happen to hold the degree of MD) still find the "mister" thing respectful of their specialty. Sure, it may be a hangover from a time long past when surgeons usually weren't qualified physicians, but now it signifies that you understand they aren't "mere" GPs/physicians attending. (Interesting note only, not a rebuttal.)
there might also be an element of countersignaling [http://en.wikipedia.org/wiki/Countersignaling] involved - the real experts prove that they are not "nervous middle classes" by actively being nicer.
These nervous middle classes who aren't experts in anything more complex than "fizz without the buzz" often rise to project manager status by taking out the existing leaders. These are the "open source project leaders" who engage in backslagging, usually indirectly, e.g. telling their clueless minions that so-and-so represents a threat to revenue and perhaps someone should "earn another stripe for their hacker colors by putting a dent in this problem".
The funniest thing is that they tend to rise, rise some more, until they reach a level that they're not really skilled enough for, and that's where their career plateaus. In case you wonder how all the incapable people end up there.
Yeah, there's a theory that people tend to get promoted to their level of incompetence.
Also related is the "Dilbert Effect" where the incompetent get promoted to management so they can't screw everything up by doing actual work, so they get to just have meetings instead, while the competent workers continue working away.
The humblest, nicest, friendliest instructor I've ever had - in MMA-style kickboxing, generally a pretty macho area - was the one with multiple world championship belts.
I've been in the dance world years ago, and I knew several champions. They were all very nice. I suspect that being nice was a very large component of their success. For example, they were always willing to help out their rivals, cheer them on, etc.
> Laughing at noobs and being mean to them is pretty much the sole purpose of IRC, unless I'm mistaken.
You are. In the IRC channels I frequent, the purpose is one of (1) being social, or (2) being helpful. Some channels tolerate wilful ignorance/trolls less than others though.
Of course, there might be other channels with nastier cultures, but the sole purpose of IRC is not to be nasty to noobs.
Although the channels are meant for discussion about standard C/C++, in IRC it seems that many people actually try to master the standards of these languages and use that as a weapon to mock other people. It really feels like that at times. And it's understandable though - a question for which the answer can't be found in the language standard is off-topic. In such environment and "culture" it's inevitable that people start raging after the third "What is the best IDE/I mixed pointers and arrays and why not work they should be the same, no?" question for the day. At some point you just wish to kick these people off the channel the moment they voice their presence.
I can totally see why this would not be a case in a channel related to Haskell or Clojure where talking about anything related to the language is the point, rather than the point being the language standard.
I went through this phase as a climber (fortunately it preceded my career as a programmer, so I learned my lesson), and I've gotten over myself, and realized that no matter what I do, there are scores of people who are better, and more humble.
Also I am rather jealous you live in Fountainbleau. Very.
You bring up a point that is interesting to me. Why does it matter to our own humility if there exist people that are better/smarter/abler than we are?
It does matter to me, but I feel it shouldn't. Woe to me if I am ever the best at anything, I'm sure I'd be a paragon of intolerance for my lessers.
And yet, some of the smartest people I know, people who very well know their own ability, are the among the kindest people I know.
On the flipside, I know some "less gifted" people that are equally as kind.
> Why does it matter to our own humility if there exist people that are better/smarter/abler than we are?
They're competition.
On the one hand, you compete against them and how well you do will determine your life path. On the other, if you don't have any competition ... that's an even worse outcome, since you might be moving on a fruitless path in the wrong direction.
> It does matter to me, but I feel it shouldn't.
Well, to be perfectly blunt, that's the definition of insecurity. In other words, you're concerned you might lose the competition in some way or another. Money, social standing, happiness, you name it.
Everybody is secure and insecure in their own ways. For example, just using myself as an example ... I don't care if you're a better coder than me, but it'll bother me if you know more about how a kernel functions and works. I know or at least I think I know, very little about how kernels work. It might be true, it might be untrue, but that's how I feel. Would fixing that really change anything for me? Probably not. It's not directly applicable to my work. Which is why I don't do anything about that, it would be a waste of my time and I don't think I would enjoy it. But it's a "weak spot", so my mind dwells on it. Well, dwells on it is a bit much. Maybe passing thoughts when the subject comes up?
From my experience as a climber[1], it has to do with my own comfort level, and feeling the need to compare myself to others. When I judged others as n00bs, or weaker than I was, it was done mostly to make myself feel better about myself. I came to conclusions that rather than comparing myself to people who couldn't climb as hard (and being motivated to remain "better" than them), it was more beneficial (both for my motivation and my attitude) to rather compare myself to people better. I had no delusions of being better than these folks, and it helped me understand my own weaknesses. So, humility matters, because I know I likely won't climb 8b without ditching my job. I can push myself, but it's done from the perspective of "wow, I have so much room to improve" rather than "I need to be stronger than all these weaker people."
[1] I am probably an "above average" climber, having done 7c+ problems here in the States.
> But there it stops. Once you hit a threshold of "better than pretty much everybody in the world, even those who have dedicated their life to this stuff", you don't really see this sort of elitism anymore.
That's what you want to believe. But really what sort of magical transformation do you suppose will happen once you cross that threshold? Why would a personality change?
No, what I think happens is this: A person with sufficiently high skill, better than anyone else and generally known to be, will get sufficient recognition and awe that they don't need to establish their rank in the pecking order. However, take away the recognition, and also a highly skilled person inclined to jerk-behaviour will again start kicking the lower ranks.
Some people are jerks. In some situations jerk-behaviour is more likely to surface than in others. But being extremely good at something does not necessarily improve one's personality. There's a difference between "I don't want to be a jerk" and "I don't need to be a jerk". The former is the better person.
Unsure if anyone will still read this, but I had another thought on this matter.
It occurs to me that you actually see highly-skilled jerks quite a lot. They piss and moan and kick and often aren't very successful, even if they're highly skilled.
Even if someone's highly skilled in some area, if they're being a jerk we're going to value that skill lower, anyway. Even though, if you'd stop and think about it, social skills are usually not related to being extremely highly skilled in some other area.
Being successful is usually a matter of luck and/or social skills. If you're extremely highly skilled and successful, you're going to be known as one of the positive examples of highly skilled people in this thread. If you're skilled, but either unlucky and/or a jerk, your skill won't be valued for what it really is capable of (unless, again, you're lucky), and you won't be noticed. Confirmation bias does the rest.
I think that everyone who has ambition hits this at some point. There comes a point in time where your domain knowledge lets you speak or act authoritatively with little or no preparation for most things.
The natural tendency at this point is to think "Yup, I'm a just a smart mofo" and pat yourself on the back. The key to moving up the chain of expertise/etc is to transcend that tendency. Humility is a skill, because you need to be willing to leave your comfort zone and listen to people.
Especially in "developed tastes" where you suddenly can't stand "inferior"
* music
* typography
* movies
* food
* wine
* art
* fashion
And so on and so forth. Of course, there is always someone out there who is better than you with better tastes, and people sometimes forget to see this as a humbling fact.
As insightful as it is, I think empty-quoting xkcd is not really conducive to an intelligent discussion.
It makes sense on reddit where people aren't encouraged to a one-track threaded discussion, but less so here where the discussion manages to flow pretty well at times.
Big part of it is if person is an expert but does things where he IS a noob. I am an expert in some things but I am a noob climber, very average runner
People who feel need to pick on noobs who actually trying to learn are scum. There are noobs that do not want to learn or absorb new things, yeah torture them if you want. but if someone is genuinely working on something and you put them down..
As a noob climber I can see the jerk types, not because they pick on me (I am so horrible that I am not worth the time) but because of how they get people react in two different ways. Some kiss their ass and other just exclude them (silence when they start talking to their peers working on a problem, people need to leave etc)
I believe more often than not, it is the humility that enables world class masters, not the other way round. Usually when people think they have nothing more to learn, they stop learning...
I wonder where do you take your experience from. I do pretty much all of what you described and while yes, there are definitely jerks around, there is no correlation between the level and jerkness. Maybe it's just hard to become "the best" while being a jerk, although I know quite a few world class climbers who are jerks and the best and who are humble dudes and the best.
In fact, we use IRC a lot for PyPy development and I think we're trying to be welcoming to other people, especially the newcomers, but then again, it's a self-judgement.
What I've seen correlation is the age (although there is definitely no rule here either). Typically, while you're being 16 and you climb say 7B, you think you're the best and you look from above towards people who climb 7As. And there are some people climbing 8Bs I know who are as bad as when they were 16.
>But there it stops. Once you hit a threshold of "better than pretty much everybody in the world, even those who have dedicated their life to this stuff", you don't really see this sort of elitism anymore.
I'm not so sure. Consider Linus, Rob Pike, and others...
I've never seen an opensource leader make fun of an honest attempt at contribution. What I have seen is a lot of ignoring and rejecting attempts.
Miguel de Icaza had a blog post on this I think. The problem with large opensource projects is that they have a lot to do, and simply don't have time to thoroughly follow up on all the small contributions that are ridden with naieve errors and plain formatting issues. Not to mention the big ones that come with architectural changes without explanations.
I think it's unfair to call these charity workers jerks, just because they are trying to make light of a dire situation.
Yes it can hurt if your contribution is coldly cast aside, and yes it would be much better if they warmly took you in and taught you in their ways, but if the OSS project leaders don't keep up the constant stream of contributions, improving the project all the time the project will die and all work will have been in vain.
On a side note: which project will you be contributing to this christmas? It is charity time after all and a bunch of hem could use a commit or two from your hands :) just be sure to read their code-style documents ;)
> Yes it can hurt if your contribution is coldly cast aside, and yes it would be much better if they warmly took you in and taught you in their ways, but if the OSS project leaders don't keep up the constant stream of contributions, improving the project all the time the project will die and all work will have been in vain.
Perhaps I'm being naive, but doesn't fostering relationships with contributors promote more contributions? Or is it considered far too rare that a (somewhat) mentored contributor will continue to contribute?
It's an investment. The first few patches from a new person will likely require so much hand-holding from the maintainers that it would have taken them less time to just write the patches themselves.
As that new contributor learns the ropes, though, that cost goes does. Eventually they hit break-even where they are adding more value to the project than they cost. But that requires the person to stick around long enough to get there. There's a pretty high chance any new contributor will lose interest and go do something else.
So whenever a maintainer gets a new patch from a new person, it's always an open question as to whether taking it in will ultimately be a win for the project. Unless you can predict the future, you can't tell if that investment will get amortize out and yield something useful.
I have 1 patch in the git kernel. I barely knew c when I did it but I did tons of research on what to call and how. Junio (maintainer) took my barely workable patch and told me what to fix. Let me do it, then pulled it in. Amazing experience in a very scary environment, eg non-minimal chance Linus tears into you.
Agreed that fostering relationships with contributors promotes more contributions.
But, if someone's first contribution had naive mistakes, and it took more of your time than it saved, I can sympathize with a leader who doesn't try to get similar contributions.
More contributors means more work for the project maintainers since it's more code they have to review, discuss, and commit. Very often the maintainers don't care about bug fixes or enhancements if it's not for something that's impacting their work.
I'm of the opinion that the best thing for large projects is new blood. If large OSS projects rotated people through triage and new contributor on-boarding, e.g. how to make a patch, how to get it approved, and so on, then in the long-run the number of contributors will grow.
But how do you do that without occasionally handing over the maintainership of some important piece of infrastructure to someone who clearly can't handle it? The people at the top of the ladder right now are there because (and sure, there are exceptions) they are (1) very good at it, and (2) willing to do it. And they have employers who have made bets on those two facts. Those employers aren't really interested in someone else taking over when they have someone working now.
I'm sensitive to this, really. I work in an embedded linux world where I end up submitting a bunch of patches to various projects as an "outsider" (often one who is still learning the project in question). And yeah, I get yelled at a lot. And it sucks.
I'd love these people to be nicer too. But honestly I don't see a "process solution" like you propose. We just need to find nicer hard-working ubergeeks. I'm not holding my breath.
There is a very very simple but quite useful technique which should be easily automated: send an e-mail thanking the contributor for the pull request and telling him with courtesy that it may be left to oblivion due to lack of time.
Honestly, for any OSS project leader this should be easy.
All of us know the difference after sending a CV anywhere between:
-1) destroying answer (do not send us your CV anymore)
a) NO answer
b) Automated answer without politeness intent
c) Polite automated answer
d) Personalized, human-written answer
You cannot do d) always but you should certainly do c).
I'm making two assumptions here: firstly that there is a hierarchy of contributors, where triage doesn't have to be handled by the guys right at the top; and secondly that the first few submissions by a new person aren't major--they are going to attempt something small first. If the latter isn't the case, the response should be "sorry, we appreciate your help, but try to get some minor bug fixes in before a major architectural change".
That's actually not the way the real world works though. The primary "jerk" projects (mostly the kernel and Linux infrastructure) are dominated by submissions from paid, professional developers working on support for new features for their employers. These people are routinely coming from closed-source backgrounds, don't understand the project, don't write new feature with an eye to maintainability, and have an affirmative requirement from their managers to get their submissions accepted. As I mention, sadly, I'm in this set more often than not.
That's just not a recipe for fun. The "hair trigger rejection" filters are there because of all the junk that gets thrown at the maintainers. And either it makes them grumpy or is acceptable only to people who don't mind being rude. Either way, the "jerk" bit is a direct correlation.
I think it's unfair to call the OSS project leaders "charity workers" and not the contributors. Either way, if OSS project leaders have so little free time, why wouldn't they spend more of it fostering developers into being more productive members of the project? This is what baffles me most about the situation. It's a lose-lose for everyone when a project leader acts like a jerk.
I think it is unfair to call "contributors" charity workers when all they do is cause headaches for the oss project leaders.
The project leader won't be a jerk to you if you make a nice well-tested, style-adhering commit that only addresses a single issue without breaking other code.
Don't think for a second 'occasional contributors' combined efforts even come close to the contribution of even a single project leader.
The Mythical Man Month. When it comes to software, uniformly accepting and mentoring newcomers into a project does not bring uniformly good return- and in many or most cases, will result in NEGATIVE return, that is, a bad developer can cause progress to move backward, making more work for the other developers- both in working around the badness, and in time spent educating the newbie.
Based on all the "I don't know what you're talking about. I've never seen this." comments I think the author should clarify that its not just the OS project leaders who are guilty of this. The smugness of core developers, and even contributors is worthy of a South Park episode.
If you're a young developer, or seasoned for that matter, and the urge to put down the work of someone else tugs at you, consider this;
I recently had the pleasure of meeting Steve Bourne, inventor of the Bourne Shell (as in, /bin/sh on every Unix system ever). Here is a guy who was literally sitting next to the guys who invented Unix WHILE THEY INVENTED IT. And all this time later he's surprisingly humble, friendly, and genuinely interested in what other, younger developers are doing.
If a guy who has earned the right to be smug several times over treats people with respect, what right do we have to do otherwise?
The author thinks an open source elite is someone with high visibility in a project that is "well known by tens or hundreds of thousands of people"? That's a pretty low bar. Personally, I'd call someone in that category a wannabe. On the internet, it doesn't take a lot to have that much recognition.
I consider people who are "the elite" to be folks like Larry Wall. Or Guido van Rossem. Or someone like Ian Lance Taylor (who has hacked on many things in the GCC/binutils toolchain). Their projects are known by a bit more than a mere "hundreds of thousands of people", and they are definitely not jerks.
The reality is if you want to be very successful, especially in a project where all of the contributors are volunteers, you can't be a jerk, because then people won't want to work with you. In the very early days of NetBSD, there were a quite a few people who were quite disagreeable to be around on the core team list. One of them was in my work and social circles, and it's one of the reasons I choose to work on Linux instead of NetBSD. But even NetBSD is known by more than "hundreds of thousands" of people.
And that's the key --- yes, being a jerk will probably be a strong negative factor if you want your project to be one of the really top, well-known, successful projects. But you can a jerk and still have a moderately successful OSS project. Because at the end of the day, for better or worse, people will overlook someone being a jerk if they have a good, solid product to offer. This is true outside of the OSS world as well, of course. As far as I'm concerned neither Larry Ellison nor Steve Jobs would win the nicest person of the year award. But their products were sufficiently good that people were willing to overlook their personality traits, and indeed even idolize them as positive examples of leaders in the Tech industry.
I couldn't agree more. I've seen this type of attitude from F/OSS "leaders" over the past couple of decades, and it always galls me to no end.
This is why I commit (no pun intended) to try my best to not be like that with any of my projects. Now, to be fair, none of the Fogbeam projects have a lot of outside contributions to date, but every time someone has contacted me, I've tried to respond in a polite, reasonable and appropriate manner.
One thing to consider, when interacting with people you don't know, is that you don't know what you're possibly getting. We got a request once, for permission to take our code, make it work with MySql, and use it for some academic research. Now that was already allowed by the license anyway, but I took the time to respond to the guy, and had a few chat/email interactions with him as worked on his project, even though I had no idea who he was, how important the project was, or if anything would ever come of it. A year or so later, I get an email saying "Hey, here's a pre-print of the paper we published, it's being presented at $PRESTIGIOUS_CONFERENCE, and we mention your project in the paper". That turns out to be a nice "feather in the bonnet" for us and helped get the project some visibility it would not have gotten otherwise.
Honestly, I don't see any value in being dismissive, insulting or demeaning towards anyone, just because they aren't already an expert in your project.
In my experience, most open source project leaders are very congenial and gracious that you're spending time on their project. I did some poking around and couldn't find any OSS leads that disparaged their contributors.
Not sure if the lack of examples was an attempt to not "name and blame" or if there aren't many good ones. OP, to be clear, this isn't merely leads saying "this code/feature/suggestion is inappropriate" to pull requests, but honest malice?
In my experience the leaders of successful projects are nice because of the straightforward selection pressure for projects that don't alienate their users. Sadly it's the followers[1] that are often jerks, and they face no selection pressure (except that they gradually pollute the well for projects they support).
Well, there is always everyone's favorite grumpy uncle Linus. :)
I think it ends up being 'ok' for him to do it because nobody questions the importance of a kernel being perfect.
I was about to say this same thing; Linus is extremely tame by most people's standards, and when he does get snippy, he tends to reserve vitriol mostly for those who should know better. If he does take the time to criticize a "noob", it's not because they are a beginner, it's because their idea is flat out wrong. Take the whole git/C++ email exchange (http://thread.gmane.org/gmane.comp.version-control.git/57643...) and notice how Linus didn't get flame-y until the OP did. Or the whole Con Kolivas/Ingo Molnar scheduler debacle: there were perfectly good reasons why Torvalds chose Molnar's implementation over Kolivas's.
The truth of the matter is, Linus doesn't really have time to respond to every hare-brained idea that people have for the kernel. Add to that he's been doing this for a while. If you feel maligned, you might want to consider a) Linus is probably right b) if you really want to hack on the kernel, you should know better and c) if you want due consideration from people more busy than you, you should give your idea due consideration yourself.
Edit to followup: until you've lurked on LKML for a while, or heard an interview, or, I dunno, maybe actually had a live conversation with Torvalds, you are probably being lead to believe he's an asshole by people with bones to pick with him (eg, people who should know better who he told off). As someone else pointed out farther down thread, how many times have we seen links to a single email/blog post by Torvalds without the context of the person he is responding to?
I played pull request with a framework recently. There was something that I wanted to do that could only be done if the framework had fully chained a JavaScript function (ie, forwarded all parameters, included "this", and returned the result). It was an easy fix, but it turned out that what appeared to be an omission was intentional due to very specific edge cases in JavaScript that prevented someone from doing something undocumented but maybe useful. A conflict between two users doing things that the framework did not intend seems like a tough decision, one that makes sense to roll with the status quo. Except that from the issues database, I can see that I was not the only person to ask for this change. My pull request was actually proposed 3 or 4 other times, and there were plenty of other people who had found a sort-of-workaround and were shipping code using this workaround. So I sat down and spent a good amount of time investigating the edge cases to figure out what should be done, wrote it all up, linked to the other people who were having problems or working around them, and submitted a new pull request. Again, the results were unsatisfying: closed because they didn't think people should be doing that. Except that they already are doing it in a hackier way. I guess that other lone guy who was doing something really strange but filed his bug report first wins after all. This whimsy is disrespectful, and pushes people to use something else, start their own, or spend time telling the world that you don't know how to play nicely. In the end, maybe that doesn't matter to some maintainers. They had their fame and their fun and they move on.
That sounds exactly like the last pull request I made to jQuery -- I found a bug in my use case that was so easily fixed it seemed like an omission, only to realize that it was deliberate due to some other, older edge case that had been coded around.
I ended up with the same result, however I will say that at least the jQuery team was very polite and respectful and was more than willing to discuss the issue at length, help explain the pros and cons of either scenario, and we were able to end up with a new, third workaround that should work with both edge cases.
Sorry that yours went the other way, but I found it spooky how closely your experience mirrored mine, despite a completely opposite resolution.
How would you avoid this? If a change is made quickly due to because that other lone guy filed his bug report first, then the solution would have been to, well, ignore his report. However, a project which did that might well ignore your report too.
These are the decisions that build (or do not build) community. The best decision is to look at what is best for the most people, consider as a maintainer where you want the framework to go, and make a careful decision. A cursory glance over someone's suggestion and a dismissal that is ignorant of how the community is working with the project or based on organizational minutia (formatting, variable names, unit tests, etc) erodes other people's interest in making your project a success.
I expect a major driver of this is that people always tend to underestimate how much tacit knowledge they're using and so to assume that people who disagree with them are fundamentally stupid, malicious, or crazy when they're really just coming from a different background.
"This is something I learned through thousands of hours of working in this area"? I'd hope that being able to point to concrete achievements would help people to make peace with gaps like this, something that isn't necessarily available to a scientist trying to explain evolution to laymen - since the laymen might not even be able to get what the scientist has accomplished. Most achievements in programming seem easier from the outside so this isn't perfect, but it might be a good starting point.
The thing is that you should just always be sensitive to the possibility of large inferential distances when you're interacting with people of different opinions. "Don't ascribe to malice what may be due to stupidity. Don't presume stupidity when ignorance is as good an explanation. And try not to be too sure your opponent is the ignorant one until you can prove otherwise." That's very much in descending order of importance, but it's always good to keep the third point in mind if you can.
I've called out more than one "leader / boss" out in meetings / code-reviews for being excessively mean & shaming noobs who are genuinely trying their best & are hungry to learn.
Constructive criticism is a great thing, but telling someone they will never work again in this industry because they make a small CSS error on their first ever post-college project is another.
I've been fired from one job for standing up in a meeting and calling the boss a self-important asshole & refusing to retract it.
I agree with you, but I did not really want to stay working for that guy anyways - it was no loss.
My take on working is that my employer is renting my time & skills to complete a job, they have every right to expect value for their money - but they don't own me, nor can they tell me when I am allowed to take a phone call, go for a lunch break, shout at me or demand that I work extra hours for no extra money.
As the wolf says: "I'm here to help - if my help's not appreciated then lotsa luck, gentlemen."
Yup, as a teacher I have a huge amount of autonomy. I can work at home (I actually do log into an rdp session, but I don't have to) and schedule the between class work when I wish to. We tend to use mobile phones for personal calls in the UK, just a fashion I suppose.
The funny thing is that I end up doing a lot of work on my own time...
I really recommend "The No Asshole Rule" by Robert Sutton. It's not just that life is too short. Working with assholes will literally make your life shorter. Kudos for calling somebody out in an attempt to stop the madness.
There is an unfortunate flipside to this— people who show up with ALL CAPS demands, proclaiming your incompetence, because of some missing functionality that they believe to be so obvious but can't seem to completely explain on their own.
The best way to respond to that is to politely request what you need and then ignore if they won't be helpful. ... but humans don't always respond in the best way: Another possible response is to respond harshly and critically in order to generate a hierarchy: "I am not here to serve you. Your patches may be accepted if it suits my fancy.". Neither extreme of being high and mighty nor of allowing people to simply abuse you is ideal.
I thought this was exclusive to the Rails community - but it is good to see it's not.
I am glad someone is speaking out against it, because it sucks.
One of the major reasons people don't learn to be better developers is because of "elite developers" that have come before them that take pride in humiliating them.
This article is very on-point. I nearly stopped learning Rails because of the torment from #RubyOnRails on IRC. But then I remembered it is the internet and everybody is probably a dog.
I am glad I didn't stop learning - and I am very conscious of this with "noobs" now.
Every time I've gone to RubyOnRails I've had to fend off supposed experts who are really morons. Like since 2005. I've had the experts tell me, when asking questions about how I might fix an issue with upgrade issues with a big rails plugin (now engine) and rails that "You should just wait and the plugin maintainers will do it eventually". No help on what to try, nothing. It took me throwing down the commit log / website showing me as the maintainer to get them to not be condescending. That channel is terrible. The shining light is Radar. Man that dude is good. Tester and coder on shopify. And effing friendly. Can't say enough about him.
Never, ever go in #rubyonrails. Every time I've ever been in there I get nothing but industrial strength sarcasm from people who don't actually know what they're talking about.
Who are these people? Are they socially awkward nerdy types, or are they more the "jock" side of the coin who understand social rules better than most but simply consider themselves above them?
My first instinct is to assume they're all 14 years old, because that was what everyone I knew was like when I was 14. Inevitably these people turn out to be in their 30s and have somehow assembled complete lives with jobs and houses and so on. The mind boggles.
By the way, #ruby on freenode is very noob friendly, with people going far out of their way to help beginning coders. There's probably a better class of noob in there as compared to #rubyonrails though.
I agree with everything except for the "shining light is Radar" bit.
In my experience, he certainly started off as helpful for me. But perhaps I didn't learn at the pace that he expects, he quickly turned into a power-flexing troll - belittling any question I had.
Left a very bad taste in my mouth, and almost exemplifies everything that is wrong with the community.
That's sad, because as I said...he started off very helpful.
Do I ask a ton of questions? Yes. But if you can't manage that, you shouldn't be the head of a channel designed to help people. It's that simple.
There are a lot of other angles we can look at this as well: The user ("I need.."), The cocky contributor ("This is right, accept my pull request!"), The belittled contributor ("I'm not sure.. but let me try.."), The helpful leader ("I can't accept this because it will break xyz.") The douche leader (As the article stated: "LOL!"), and the cocky leader ("No, that's wrong." - And then they realize later it's actually right, but they're attitude made them not look at a worthy contribution in the right light correctly.)
The article makes a good point - But there's a lot more we can take out of this, that being that for any community to succeed, it needs to be just that: A community. A place where others help each other grow.
Sometimes it's hard because reminding someone who sends you pull request about the projects contributor guidelines sends them off in a huff and even though they pull "might" be good in that it does not break any tests it's hard to know what scenario it's guarding against or if the person is doing something strange in their code.
The cocky contributor is usually a bad contributor in my experience and are both energy drains and time sinks. The belittled (or humble) contributor is the one I am that I really appreciate and value as they are willing to enter into a dialog about what needs to be in the pull request to get it in.
In the end is all about normal human social decency. Treat people badly and don't be surprised when they treat you as a leper.
I've seen this a couple of times but not after pull requests, but simple (verified even) bug reports or feature requests.
Let me quote a recent example from IRC:
> XXXXX interesting how the number of new github issues went down since i started ignoring them :)
> XXXXX could be coincidence, but i suspect having a few open tickets discourages the more frivolous requests we usually got there"
Nice attitude there! After reading several such comments and some diatribe on github (following a bug report), I really had difficulties justifying the use of the software developed by this guy, especially after having been warned about this earlier by a co-worker ("the project is fine, XXXXX is the only problem with it") and not taking it seriously because I thought he was exaggerating (I'm not really into personality cult etc.).
If the project gets big enough you really need to have someone just dealing with the issues. It's super time consuming. I've gotten commit access and cred on several open source projects just by going through the issue log and triaging it. There's a great post I can't find on a good triage process for issues. OSS projects are much more likely to give you access to do tickets than to commit. And on github, you can tag issues to help the maintainers sort the issues.
I was on the receiving end way back in 2002. I'd just written an RS232 library for the .NET Compact Framework that ended up in the Microsoft .NET Compact Framework Core Reference[1]. It was also referenced by an MSDN article[2], so got a lot of attention.
I left a bug in there which broke anything that didn't use default settings. The abuse was astounding. It was the last code written on my own time that I ever published.
A part of the hacker mindset ("hacker" as used in the jargon file, and in this site's title) is intolerance of stupidity. Ignorance is one thing, that can be learned away. Stupidity is wasting developer's time by asking questions that are addressed in the documentation or that can be instantly solved with five minutes on Google, or submitting pull requests that go against a published style guide, are plainly wrong or buggy, and so on.
I'm going to come right out and say this: Some people should not contribute to a FOSS project. Whether that's because they can't deal with other people or because they're not willing to put in even a modicum of effort to work effectively with other people. If you go up to a group of people who are used to doing things according to procedure X and you blithely ignore it, you really should not be surprised when your efforts are met with derision at best and hostility at worst.
While I understand the point the author is trying to make here, and even sympathize to a point, the mindset isn't going to change, nor should it. The bar to entry is a part of what make high quality projects high quality.
There is literally nothing that you gain from being derisive that you can't also gain from being polite. And the tone you set for your community is vastly different.
Derision of stupidity is probably one of the worst characteristics of hacker culture, because “stupidity” tends to be shorthand for “disagreement with my point of view”.
I have trouble making a cogent argument around the derision of stupidity because derision should be self-evidently bad. It should automatically file under “why would I want to do this to my own personality”. Derision and bullying are indistinguishable from each other, and the thought that a group as oft-socially-maligned as hackers (at least until the last 6 years or so) defaults to derision seems more a sign of imitating things we were subjected to than reasoned thought.
“If you go up to a group of people who are used to doing things according to procedure X and you blithely ignore it, you really should not be surprised when your efforts are met with derision at best and hostility at worst.”
What does blithely ignore mean? Say this is the first open source project I've ever contributed to, so I don't know what the norms are in terms of where to even look for guidelines. Or I contributed 30 minutes of my time because that's all I had, and I devoted them to this. Or I'm learning to program, and I chose to try to help your project.
I will posit that anyone who is trying to contribute to your project is doing you a kindness. They may be doing it in a poor way, and you are within your rights to point that out. But how you point it out is what we're talking about. You an politely point out that the project doesn't accept pull requests. You can politely point out that tickets can't be opened until there's been a discussion on the mailing list. Etc. You can even be curt.
Derision is not curtness. It is not impatience. It is explicit, intentional putting-down of someone because they aren't as good at something as you are or think they should be. And it is a poison. Unfortunately, if you take it frequently enough, it becomes habit. It becomes second nature. And you stop noticing it's poisonous. And so, unfortunately, it is an oft-enjoyed poison in intellectual circles. It doesn't help anything. It doesn't help you understand the world or other people. It doesn't really save you that much time. It simply makes you feel better about yourself.
> There is literally nothing that you gain from being derisive that you can't also gain from being polite.
As maintainer of a large open source project, this isn't entirely true. I would agree that derision is bad. But being blunt is good. Many people confuse bluntness with rudeness.
There is every benefit to being blunt with stupid people. The people who intentionally and wilfully ignore the documentation, who demand that bugs get fixed NOW, who refuse to follow instructions when they ask questions.
The benefit is that they go away. Rude people are toxic to a community. Stupid, rude people.. doubly so.
My personal approach has evolved over the past ~15 years doing this. I no longer try to educate them. Once they've made it clear they're intentionally stupid, they get told "shape up, or be banned from the mailing list / forum". Many do.
Others reply with hostility, curses, private emails denigrating my mental health, paternity, etc. They get banned permanently.
I agree with you 100%. The post in question specifically mentioned ridicule, including comments like “wat” and “stupid pull request of the day”. That's derision, not bluntness.
While I try to be polite regardless, I have no strong issue with people who are blunt by default (I also happen to think there's a fine line between bluntness and rudeness, but that's a different topic altogether). I think the key of what you said is “once they've made it clear they're intentionally” doing what they're doing. That is what makes a person toxic. Missing documentation or contribution guidelines or what have you on the first try, less so. On the second try, I'd say bluntness is in order (“we've already asked you to do X, please keep that in mind in future requests” or somesuch). After that, you're dealing with a person who is dragging down both your community and your own time. That's a problem.
And still, it's more productive and beneficial to the community as a whole to be blunt rather than derisive.
>Derision of stupidity is probably one of the worst characteristics of hacker culture, because “stupidity” tends to be shorthand for “disagreement with my point of view”.
Then it's not stupidity. That's not what this article (at least that I can see), or my post, was talking about. I was referring specifically to failure to RTFM as the big one, with a side order of bad commits and pull requests.
Ask any tech support monkey at the end of their day what they think about the average person. Then remember that this person is getting paid to do it. How do you think someone who rolls a project as a labor of love feels?
And anyways, if you have an open source project, and it's set up in such a way that commits have to be approved by one person or a group of people, then that one person or group of people are the only people who's point of view matters, at least when it comes to that code in that project. Don't like it? That's what forking is for.
>Derision and bullying are indistinguishable from each other
Disagree. Derision is a society's way of pointing out that you did something you shouldn't have. I have absolutely no problem with mocking stupidity. Stupidity is evil and everything wrong with the world, and should be mocked and driven out mercilessly at every opportunity.
And you'll forgive me for thinking that pointing at a silly pull request and saying "wat" isn't even on the same ballpark as "bullying".
A well defined process and a very good guide to what you should do if you want to help. Ignore means just that, "ignore". If you got a pull request into that system, then you obviously got ahold of that information some way.
>I will posit that anyone who is trying to contribute to your project is doing you a kindness.
But if you're wasting people's time, then that effort is wasted, and having the opposite effect at worst. That time spent dealing with your question which is answered in the docs or telling you why your pull request isn't going to be committed could have been better spent advancing the project. Time is valuable.
“Ask any tech support monkey at the end of their day what they think about the average person.”
The mistake so many people make is to let someone's lack of knowledge translate into “stupidity”, which is typically defined, and defined by you yourself, as an inherent, unchangeable trait. We toss around the word stupid, but it's got two meanings. One is the one I use with my friends when I talk about something who doesn't know as much about something I do. The other one is the one you use to justify derision. Besides not accepting derision in general, I think there are very very few legitimate instances where the other one applies at all.
“And anyways, if you have an open source project, and it's set up in such a way that commits have to be approved by one person or a group of people, then that one person or group of people are the only people who's point of view matters, at least when it comes to that code in that project. Don't like it? That's what forking is for.”
We're talking about whether people should change their behavior. That applies to current show-runners, not to whoever chooses to fork a project. Once your project is entrenched, you can feel like you have the power to say whatever you want because your community is vast. That's a problem.
“Disagree. Derision is a society's way of pointing out that you did something you shouldn't have. I have absolutely no problem with mocking stupidity. Stupidity is evil and everything wrong with the world, and should be mocked and driven out mercilessly at every opportunity.”
Literally, mocking is one huge component of bullying. There's no question about it, just watch a bully. Mocking is bullying. Derision is bullying. There are other ways to point out you've done something you shouldn't have, including stating it politely.
Pointing at a silly pull request and saying “wat” isn't in the same ballpark as bullying solely because it hasn't been done to you when you've been trying to do something you hadn't done before. Or because you hadn't tried to have a social interaction (as opening a pull request is) when you're generally nervous about such, only to be slapped in the face by a comment like that.
“If you got a pull request into that system, then you obviously got ahold of that information some way.”
Yeah, that blog post that mentioned pull requests were legit. Then I googled pull request with the project name and found where I do those. Then I opened a pull request with my changes.
Uh-oh, there was a guide I missed somewhere. Crap. Clearly the proper response to that is mockery and anger, rather than an understanding that maybe I wasn't intentionally trying to waste your time.
“Time is valuable.”
I have never heard a lamer excuse for being an ass (I'm not calling you one, by the way—I'm saying in general), sorry. Yes, time is valuable. You can be polite about pointing that out instead of being derisive. You can say “wat” or you can say “We can't really take this pull request; there's no reason to add this feature.” Or “unfortunately this pull request doesn't adhere to our code guidelines, and I'm afraid I don't have time to help you get it in line with those right now”. Something that acknowledges that maybe their time is valuable, too. Since these are people who want to become members of your community, and invest their own time in it as well.
"What we are, unapologetically, is hostile to people who seem to be unwilling to think or to do their own homework before asking questions. People like that are time sinks — they take without giving back, and they waste time we could have spent on another question more interesting and another person more worthy of an answer."
Note: We are upset that people do not think for themselves and feel that they have to be spoon fed because they are special.
Hence the "sympathize" part, but then again, I also sympathize with people who are human and eventually want to start inflicting bodily harm on people who can't be arsed to read the FAQ before A'ing the same Q again.
Part of the "bar to entry" is that mindset. You don't get a pat on the back and warm encouragement for submitting crap code. You get told your code is crap with the expectation you'll improve before wasting the reviewer's time again.
Call me crazy, but I happen to love this environment.
You sir are a douchebag, and I won't participate in any project you're associated with.
I don't understand why everyone's pussyfooting around this guy. Please? No offense? This guy is THE PROBLEM. He doesn't get a pat on the back and warm encouragement for providing crap people skills. People skills are part of a project too, just like code.
I downvote rude people on HN, and ascribe to the idea of not saying something you wouldn't say in person. But this guy? I'd say this and more to him in person, on a stage, in front of a million people. Go ahead, downvote me. It's all in a good cause.
You downvote me for an opinion (which is simply "stupid people should not be coddled") absent any animus to any person on this board (you including), and yet I'm the douchebag.
This applies to any project. If one sees others being mistreated, one should vote with one's feet and leave. The defense of "but they're treating me fine" is the height of hypocrisy.
Stupidity is an aesthetic judgement. We all run into people it's too hard to help, people we might call stupid under our breath. When this happens to me I move on in silence, rather than turn my aesthetic judgement into generalizations that sully the forum (mailing list, irc channel, etc.) for everyone.
Your FAQ better be very visible and better include the question and a working answer then.
Also (no offense, you might be a real genius) but a lot of people who think they are above everyone else really isn't. I've seen people frown at the use of Java reflection because it wasn't type safe then go ahead and deliver brand new features written in pl/sql.
I know it can be a pain in the ass when people ask you the same (stupid) thing over and over again, but still, IMHO a "leader" of any kind should never bash his "followers". Or he'll end up losing them.
with the expectation you'll improve before wasting the reviewer's time again
When you insult people and act like a jerk I don't think you want them to come back ever again.
Sounds more like you love the environment because you feel good shooting people down rather than what's best for the project (and open-source) long-term. This attitude is why more people don't contribute to - and become better at - the process.
I completely disagree. There's nothing gained from making someone feel incompetent when they're just volunteering to better themselves, meet like-minded people and work on something they believe in. You will end up surrounding yourself with equally socially inept people if you encourage this behavior in your community.
Be it doing a better job explaining the project and the requirement/skillset minimums, aptitude tests before they even contribute, or having a pre-defined list of responses to bad code (i.e. '294: Doesn't follow x standard, please see FAQ pg. 84'), there are better ways of handling these situations that encourage people to get better without making them feel worse. Just because bullying people has worked in getting the response that you want doesn't make it the right one.
Nevertheless, I stand by my comment ;) If you're repeatedly getting the same questions asked, in addition to the FAQ (which people, being people, are quite likely not to read), create a text file with common answers. Each time somebody asks a common question, copy and paste the answer.
This was something somebody suggested doing on the Joel on Software board, I think. They used it for fielding frequently-asked questions from trial users. Apparently people responded to it very well. Trial users have the potential of turning into paying customers, of course; open source contributors... not so much. Nevertheless, if you really want to provide the personal touch (and if you're spending time insulting people on the internet, clearly you do!), then this is a reasonable way of providing some simulacrum without too much effort.
You could just fill the text file with creative insults, if you prefer.
A part of the hacker mindset ("hacker" as used in the jargon file, and in this site's title) is intolerance of stupidity.
I totally disagree with this. Yes, a lot of hackers may have an "intolerance of stupidity" but I don't know of anyone who has the right to define "hacker" who can say that the definition includes that. And never mind the fact that we are ALL "stupid" in some domain or other and we all do stupid things every day.
please don't try to excuse rude behaviour by ascribing it to a culture that is defined by curiosity and tinkering. being rude has nothing to do with hacking. if you want to be curt and insult people, then you bear the onus for that.
FOSS isn't exclusively "hacker culture", and that behavior isn't correlated with high quality.
If that is the accepted behavior of the maintainers/contributors, then be 'open' about that too.
"If you have questions, RTF(src|wiki|docs|issues|blog|groups) then come join us in #herpderp on freenode where our chamber of @ cloaked elders will determine your fate; aid you, ignore you, berate you, or remove you."
Glad that someone is talking about this. There are times when a little encouragement can go a long way. A novice maybe very excited about learning and being belittled at that stage can be deflating. This is especially true of people who come from a totally different field, or are young and enthusiastic about contributing.
I have to wonder how many people see Linus Torvald's behavior and think what he does is OK. Linus walks a VERY fine line, and his insults and demeaning comments are usually directed at people who "know better."
I have had a few drinks so it's hard to properly articulate what I mean, but maybe somebody else knows what I'm talking about.
I have Harley Hahn's Unix book (2009 edition I think). In it, he describes some of the reasons Linux grew so quickly. One of them is that "Linus has a pleasing personality... in person or online, Linus pretty much gets along with everyone because he is so easygoing. As he once observed in an interview, 'Unlike Richard Stallman, I really don't have a message.'"
This part struck me - as a college student who hasn't been involved in tech culture for that long, all I had heard of Linus is about his brilliance but his harshness and perhaps arrogance.
So, assuming my impression and Hahn's are both accurate - what changed? I think that the stress of life gets to us and we start to cut the pleasantries, tact, and niceties that seem to slow us down. We don't mean to be a jerk, but the fast-paced lives we commit ourselves to don't allow time for us to treat others as respectfully as we can. We're blunt because it is easier on us and we don't care about what it does to others.
So, assuming my impression and Hahn's are both accurate - what changed?
Nothing. The only difference is if you're on a mailing list that Linus frequents, or if you're only reading a single post from that list bereft of context because someone sent you a link to the point where Linus puts his foot down.
Its like Zed Shaw, he wrote a great introduction to programming book I frequently recommend and even helps random people learn over twitter and email. But post some of his work on HN and you'll find a bunch of people still sore about a single angry rant he wrote a few years ago.
about the last para, there is more than can meet the eye (for example: when said people issue unwarranted physical threats) it's not to diminish the greatness of anyone's work but some (not all) people have genuine complaints beyond a single blog post.
Alternatively, perhaps nothing changed, and the public propaganda about Linus is generated mostly by people who don't interact with him, and flaming about high-level things like driver support is only tangentially related to what it is like to interact with Linus.
You probably need to have a little fear of god put into you by the reputation of someone like Torvalds, if you're going to take up his time. People who are worried about looking stupid will double and triple-check what they do, and that's a good thing.
I think you have to remember that these guys are operating at scale, and until you've walked in those shoes...
No, you're right. While I don't think Linus himself is a bully, he does seem to be one of the reasons that jerkitude is not only tolerated, but respected and aspired to in open source / hacker communities.
Open source projects work best when they have a benevolent dictator. You need someone who isn't afraid to say "no" to bad ideas, or else you'll end up with a total clusterfuck. It's just as important not to forget the "benevolent" part. I'll always remember Brad Fitzpatrick telling me "no" to one of my dumb suggestions for PubSubHubbub. He explained his reasoning and took the time to tell me what I needed to fix. He knew he was smarter than me, but he gave me the chance to figure that out on my own instead of pushing me away.
Lots of sports analogies on here. I'll toss in mine. I've made a habit of trying new things and have gotten over the "you look stupid when you start" part. Skiing, Snowboarding, knitting, sewing, coaching, aussie rules. Everyone's a newb at some point. I have found that I compare myself to other skiiers / boarders a lot. But that is mainly a safety thing so I know if I should follow them down other parts of the mountain. So competitive but for a reason. I think I get more pissy about etiquette and safety, but generally from people who look like they should know better. 16 year old coming into the lift line at high speed, I see you. I'm a large large man, you're gonna get hurt if you hit me and I played college ball, I'm gonna make sure I don't get hit. Soooo... anyway. Unless you're trying to get ranked in real life, you're really just competing against yourself. You're the one who will decide if you have the time to put into whatever to be good enough to compete at a low national level. There are exceptions, but in sports you can use your brain and experience to make up for physical deficiencies. In Cerebral events you can use persistence and experience. And I've tailed off so Fin
this blog post has a major omission of any specifics whatsoever. I've never seen this kind of behavior, and I'm having a great urge to say something like, "oh well because PHP/Ruby/etc". But that is all prejudicial.
Won't we be given some specifics so that we don't have to guess what famous OSS author actually typed "HAHAHA" at a pull request ?
It's hard to believe that people "have never seen this behaviour" have spent much time watching the OSS community. Ulrich Dreper, well known OSS contributor and former steward of glibc, was famous for flaming the ever-living shit out of anyone who dared submit a patch that he in any way did not care for. To give but one example, http://www.sourceware.org/ml/libc-alpha/2000-08/msg00053.htm...
Surely we can find a better example of this supposedly widespread behavior than this. Reading that whole thread, it's clear that this Christopher guy hasn't even considered issues that are quite important to Ulrich and his collaborators. Then when his failure to consider is pointed out, instead of taking the lesson to heart he doubles down with unconvincing, unrelated arguments. That is "crap", and that's what Ulrich called it.
So it's not that you've never seen this behavior in your tenure as " a contributor to open source projects for almost ten years", it's just that you think toxic behavior is acceptable.
That's, at least, a more intellectually honest position than your previous claim.
There are a lot of ways to reject a patch on the grounds of cleanness and efficiency that don't involve deriding the contributor's work as "BSD crap" that only helps people who "deserve to be punished".
Drepper was a monumental asshole, and he deeply hurt the glibc project for years.
Toxic is exactly the correct word. It poisons the community and kills morale. If an employee of mine were ever using that tone around the office, we would be making a quick trip to a small conference room to discuss appropriate behavior toward colleagues. If it kept up, they'd be gone. Because somebody would eventually be leaving over that behavior, and I'd rather it be the perp than the victims.
>it's just that you think toxic behavior is acceptable.
You think that calling someone's idea crappy is unacceptable? In what sense of the word? Are you saying that it should be illegal to make fun of someone's ideas?
The worst behavior I have ever seen comes from a commercial open source project. I know they aren't paying customers...but they are bug finders and bug reporters, user experience testers, and even feature-expanding code contributors. I would be appalled if I employed the guy.
That seems to be an odd, and ironic flaw in the human mind. We often do to others what was done to us. Sexual abusers are often themselves past victims of sexual abuse.
It's not especially ironic. Two things: when people are left to their own devices, they tend to imitate the people around them. And, people tend to favor themselves to be a good "end result", which reflects favorably on the environment which shaped them. In fact, to oppose the circumstances you came from is to oppose some part of your own nature. So, people tend to favor recreating themselves (because they prefer themselves) by recreating the environment they came from.
Anonymous examples would help make the point, but outright pointers to the behavior described is not a not too distant cousin of "hah check out this jerk"
When the goal is to change behavior as a whole it helps to not point anyone out. If you linked to a Github pull request that demonstrates this behavior, that guy now becomes the eye of the storm, instead of the community where the focus should be.
If the author did that, we'd all be talking about how githubuserxyz is such an ass for belittling contributors and how dissimilar we each individually are from githubuserxyz.
It doesn't help the conversation - which is one that the community needs to have.
I'm having a very hard time thinking of any positive social change that happened without individuals being called out. Take dueling. The Church preached against it for hundreds of years. Right-thinking people decided it was a bad idea. The government outlawed it. But everybody was afraid that if they didn't challenge people who insulted them to a duel others would think that they were cowardly, so they kept doing it.
But then people like Duke Wellington started getting publicly mocked in the papers for engaging in duels and the practice died out almost immediately.
So, talking about how people in general ought to be nicer won't actually change how people behave. Calling out githubuserxyz for being an ass, though, will make people afraid of being mocked like githubuserxyz and so actually change their behavior.
Seriously, there's an excellent book called The Honor Code about how these things happen historically that I would recommend.
Poignant. But I think it applies less here. For every guy who isn't out there berating the noobs there's multiple noobs engaging with the community. I'm happy to shut them up at that price.
Who was it that said, "I will tolerate anything but intolerance"?
I feel strongly about this because I was traumatized by interacting with Ullrich Drepper at an impressionable age :)
This doesn't seem like an activity that's rampant in the community in any fashion. I personally only recall it happening once, ever, and I've been a contributor to open source projects for almost ten years.
> This doesn't seem like an activity that's rampant in the community in any fashion. I personally only recall it happening once, ever, and I've been a contributor to open source projects for almost ten years.
If a lot of other people are talking about the negative consequences of something you personally haven't experienced, generalizing outwards from your own experiences to conclude that something a lot of other people have experienced doesn't exist is a pretty wrongheaded way to approach life.
> If a lot of other people are talking about the negative consequences of something you personally haven't experienced, generalizing outwards from your own experiences to conclude that something a lot of other people have experienced doesn't exist is a pretty wrongheaded way to approach life.
You're wrong. Generalizing from your personal experience and from verifiable facts while paying little attention to vague whining and anonymous accusations (of unnamed alleged perpetrators, no less!) is an excellent way to approach life.
>When the goal is to change behavior as a whole it helps to not point anyone out.
Has it ever occurred to you that many people strongly dislike it when others attempt to change their legal, nonviolent behavior? It's nosy, condescending, self-righteous, and creepy.
What about my reply is contrary to "how the real world works"? I'm fairly confident that if this article had a link to tangible occurrences two things will occur in "the real world": 1) readers will react to those particular incidents 2) the author of the article will be called a hypocrite
The point is, moral authority doesn't help at all in changing the behavior of people who aren't on your side already. It's very important with leadership and group cohesion, so not opening yourself up to calls of being a hypocrite is something the leader of an open source project should consider when dealing with jerks in their project. But it isn't particularly useful in effecting change from the outside.
>When in society did "Look at what this jerk is doing." become something unwarranted? //
The point is here that it's assumed that the people making the pull request are attempting to make an honest contribution and the response they're getting is "look at what this jerk is doing".
I don't think it's possible to give real life examples without making it possible to find the people involved. Clearly the author isn't wanting to publicly chastise particular leaders; nor would they it seems want to draw attention to particular code that wasn't adopted and led to [over-harsh] dismissal of the contributor's effort.
The author is coming from a point of view that I don't know if anyone else in the OSS world holds, and that the Internet doesn't seem to agree with. Without hard evidence, he's talking out his defecation hole.
This guy currently contributes to several OS projects http://mutedsolutions.com/about, https://github.com/derickbailey and has apparently been a developer for over 30 years in a range of environments. Whilst I don't find it impossible to imagine that he's made up the problem it seems doubtful on balance - what would he gain?
He says he's fallen in to the trap himself of making fun of others [apparently] honest contributions.
Yes, that's not an argument but this
>Without hard evidence, he's talking out his defecation hole. //
is fallacious reasoning. It is not the case that failure to present examples of pathological behaviour means that behaviour is a fiction.
If your position is true and indeed he is literally the only person to believe that sometimes OSS leaders have made fun of the code of other [attempted] contributors then it's interesting to speculate why that might be so.
One possibility of course is that those who deny it's a problem simply can't see it despite it being there.
Also, if we can accept him to be a "leader" then we now know at least one person that he's being critical of ...
When I was high school I had the opportunity to work with an aspiring music producer. It was great fun and a formative experience because he had a notably kind and supportive demeanor, coupled with focus. He went on to become a superstar producer and to this day when I run into him he has exactly the same demeanor.
This leads me to think some aspects of personality and how we treat others are innate. Jerks can be talented and successful too, and just remain Jerks. It takes all kinds.
From what I've seen, most of the contributors to large projects are one-time contributors who just want to implement their one cool idea for the project. Maintainers who want to encourage those sort of contributions need to do everything they can to lower the barrier of entry to contributing, which includes being positive towards new contributors.
My favorite comments I will never forget from my ex-CTO:
"you are wrong about this, because I say you are wrong." [turned out: he was dead wrong!]
"stay home if you want to answer phonecall from your dad." [knowing he is in the hospital]
"today you have been all day on the phone." [after talking with dad for 3 min 35 sec]
"stop pinging google to check if the net is working."
"ping doesn't tell you anything."
"I hate those Chrome tabs -- they are affecting my search results."
"I'm a CTO - I can be rude."
"Don't work here if you have family."
"If we succeed with this project [24-months period], we may get million dollars bonus" [perfectly knowing its impossible and simply not true]
"I fixed Asia!" -"Cool!" -"What did you do?" -"At 3am? I was with my wife and kids." -"Well, I hope that helped alot in your career." [next day, after he IT-supported Asia at 3am]
"You see my desk? Apple, Apple, Apple..."
"You are on a McDonalds French Fry Guy schedule, ha!" [after working 14 hours straight from 7am till 9pm]
"You work long hours and are not paid for those, because you are upper managment and should be proud of it". [after working 14 hours straight]
"Don't ask for that, you are not upper managment!" [when something failed to work and needed to figure the details to troubleshoot]
"You are upper managment, you should know this!" [when I didn't know something IT-related]
"You won't get the bonus, you are not upper managment!" [bonus question around Christmas time]
[email provider down; on the phone with support] "Why are you calling them? chat-support is faster!"
[days later, the same issue; on the chat] "Stop wasting time on chat, just grab a phone and call them!"
[after 12 hours straight work on 8hr schedule] "I completed the project, I am going home" -"Fine with me, as long as you are Symfony Framework specialist" [next day after staying extra 2 hours to understand basics of Symfony Framework] -"Never mind, we won't use them anyway!"
Those were the perks.. there were some better here and there, but honestly I started making notes way too late. But my tech-friends always loved to ask whats new with my CTO. They used to call him "Chief Toilet Officer", because frankly speaking he couldn't do shit right.
Why did you work there for as long as you did? After the first two you could have packed up without any repercussions, and you should have made a little farewell present to the CEO giving him your exact reasons for leaving.
I hope the pay was really excellent, I mean - fabulous. Otherwise I don't see why someone would submit to such treatment. Many companies are constantly looking for good programmers, and I bet you can find one with a non-jerk boss.
Just taking a second to thank you for all your work on Marionette, and your seemingly endless contributions to Backbone/Marionette questions on StackOverflow Derick - I'm nowhere near the level to be contributing to Marionette but your humbleness inspires me to use your code every day :)
This completely doesn't ring the bell for me, but maybe Python community that I typically interact with is different. Maybe we're such jerks that we don't even know how much of jerks we're.
Nor do I. I've had lots of positive results on github, as puller and sender. The barrier to entry on github for sending a pull request is much higher than asking a "send me teh codez" question on Stack Overflow though. It's understandable that the more experienced contributers are burned out there. Rather than replying nastily maybe they should just leave the Eternal September that SO has become.
I think the CONTRIBUTING (sic) file in GitHub has also helped to put the onus on the repo owner to explain what is kosher, and what isn't.
The idea of a canonical ruleset exists mainly so people don't have to make vague references to "common sense" and such.
And I just don't see a lot of bad issues/pull requests out there, but the system still needs a managerial overhaul that scales, though. Better to nip the problem in the bud, before it downright breaks GitHub.
Programmers certainly do it. Laughing at noobs and being mean to them is pretty much the sole purpose of IRC, unless I'm mistaken. Surfers do it. Climbers do it. I've even seen rocket scientists do it.
The interesting thing is watching which members of a given group behave this way.
It's not everybody. There's a certain skill range where you find this behavior. Generally it ranges between "reasonably good" and "better than most people I know", and it grows exponentially in that range (though, again, only in people who are given to such behavior).
But there it stops. Once you hit a threshold of "better than pretty much everybody in the world, even those who have dedicated their life to this stuff", you don't really see this sort of elitism anymore.
I live in the climbing mecca of Fontainebleau, and can watch first hand as 7a boulderers from around the world descend and act like jackasses trying to scootch their butts off the ground on problems that are hard (but not world class) while scowling with superiority at the lowly rabble that might dare touch the holds of their project. It's best to simply wait until they give up before going over and doing the problem.
But occasionally you see a guy working an 8a. That's pretty stout by anybody's definition (even at font), but he's not shouting or swearing at it. He's just calmly doing his thing, uninterested in being the center of attention, and more than happy to talk to anybody who walks up without the least hint of snoot.
I think you find the computer programming equivalent of that guy from time to time too. He's the "bourne shell" guy that another comment mentions downthread, and he's above the elite.
The cool thing is that you don't have to be as good as him to act like him. All you need do is not be a dick.