
The Hating Game - luu
http://rachelnabors.com/2015/03/13/the-hating-game
======
theVirginian
This sort of negativity is not just unhealthy, it can make it really difficult
for beginners to figure out where to start and realize that it actually is
okay to start pretty much anywhere. When I was learning how to code, every
single day I would come across some new package or framework that was
described as being revolutionary and awesome by the people who supported it
while other similar stuff that I had been previously interested in was just
basically shit on unequivocally. I don't personally know of any other field
that does this sort of thing and it made it extremely difficult and negative
before I realized how many people in tech are just full of hot air.

Hacker news is not immune from this behavior either. Nearly every day I read
an article and I think "wow, that might be really cool if I ever have time for
it" but then I read the comments section and 90% of the comments go out of the
way to disagree with EVERYTHING that the author said. It can be really off-
putting to be honest.

~~~
Red_Tarsius
I have a hypothesis, but it's VERY silly. Programming, like many tasks created
in the 20th century, is not nearly as physically demanding as traditional
jobs. People who work behind a desk 24/7 feel emasculated and try to
compensate by showing off their expertise through aggression. It's a game of
dominance and frustration. Of course, this is totally unproven.

~~~
btilly
I have a hypothesis which is much less silly.

Programming expertise is very fragile. A variety of changes in your
environment, such as different coding standards, dependencies, programming
languages, etc, will cause a severe impact to your performance. The result is
a strong negative reaction to things that should be objectively neutral.

That is, a change in your environment can make you feel incompetent, and it is
easier to get angry at the change in the environment than it is to be honest
with yourself about what is happening.

I forget which book I ran across this theory in, but it explains a variety of
conflicts that repeatedly come up about formatting, libraries, programming
languages, operating systems, and so on. Furthermore it is easy to experience
the feeling yourself when you go from an environment where you're competent to
a new one. (At the moment I'm going through this having to learn Eclipse and
Java, after many years of being primarily a Perl dev.)

~~~
henrik_w
I don't agree that programming expertise is fragile. There is a kernel of
knowledge that transcends language and syntax, and that is by far the bigger
part of "programming knowledge", much more important than knowing specific
syntax and how to use certain tools. For more, see [1].

This doesn't mean you aren't correct. People may still be reacting negatively
to change, because it does require work to learn new libraries, frameworks and
languages. But that is not the same as saying that programming expertise is
fragile.

[1]. "Programmer Knowledge" [http://henrikwarne.com/2014/12/15/programmer-
knowledge/](http://henrikwarne.com/2014/12/15/programmer-knowledge/)

~~~
epochwolf
I'm going to have to disagree with you, especially in relation to large
frameworks.

I spend a lot of time working with medium to large ruby on rails applications.
I know them very well and I am pretty good at doing things quickly and
correctly. If I have to work on a php, python, or javascript project, it takes
me one or two orders of magnitude longer to get things done than it would in a
rails application.

The ability to start working with a new language after reading a blog is
useful but it doesn't mean you'll be effective and useful in that language in
a week.

------
bshimmin
One problem with front-end development at the moment is that there are such a
ridiculously large number of ways of doing things, such an incredible rate of
churn, that there is this sense that you have to say _something_ to justify
whatever choices you've made. Perhaps because the actual arguments for
choosing, say, Webpack over Browserify really aren't very strong (perhaps both
are great solutions to the same problem; perhaps neither are perfect solutions
and will be superseded in another six months!), there is a tendency to resort
to an emotional and dismissive argument, the so-called "smack talk" mentioned
in this article.

Certainly it's frustrating for any front-end developer who has invested his
time in learning Grunt only to find out he should now be using Gulp, or
Broccoli, or make(1)...

~~~
nostrademons
There's nothing wrong with saying "I chose technology X over technology Y
because they are basically the same, they each have small advantages in
certain areas but nothing that will materially impact our success, and making
any decision is better than making no decision."

I remember the last time there was this sort of fragmentation and polarization
in the web framework world (2005-2007), I chose Python & Django over Ruby on
Rails because, well, I liked it better (that and the RoR community had a
certain evangelistic quality to it that turned me off, while Pythonistas are
basically like "Yeah, it's a tool. I can build cool stuff with it. Let's move
on and solve some problems"). I'll freely admit that it doesn't matter, Ruby
is a fine language, and Rails is a fine framework. But they do largely the
same thing, I've never once regretted my choice, and I've been able to build
some pretty cool things with the energy that wasn't expended getting
emotionally involved in language/framework/tool wars.

~~~
smacktoward
_> There's nothing wrong with saying "I chose technology X over technology Y
because they are basically the same, they each have small advantages in
certain areas but nothing that will materially impact our success, and making
any decision is better than making no decision."_

Well, except that saying that X and Y are effectively the same is not a great
method of getting booked to speak at conferences about X and write articles
for sites dedicated to Y. It's the truth, of course, but if your main goals
are self-promotion and/or demonstrating how smart you are, it's not going to
help you much.

~~~
mod
I don't see why "they're effectively the same, but I chose X and have been
using it for Z years now, and I'm widely considered an expert" would be any
different from...I don't know, denying that they're the same.

If anything, denying it would be evidence of ignorance, no?

------
notacoward
The bad news is that what the author's seeing is only the tip of the Hating
Game iceberg. Over here on the back end there has _always_ been a lot of
bonding through hate, and it reached toxic levels long ago. I've been on
projects that were the target of unjustified hate from people who had never
even installed or run it, or had any idea how it worked or was different from
any alternative, just because that was The Meme. I've probably slung my share
of snark myself. Mention Lustre to a Ceph fan, MongoDB to a Riak fan, Solaris
to a Linux fan (or vice versa), and watch the sewer floodgates open. It's long
since time we developers _in all specialties_ tried to turn the corner on this
issue.

~~~
steele
no vi v. emacs?

~~~
SnacksOnAPlane
I don't even understand how people can have this argument. I mean, how many
people have actually invested enough time into both vi and emacs to
meaningfully compare them? I doubt there are that many. Really, either one is
a fine choice and will probably be able to handle all your coding needs, once
it's customized to your liking.

~~~
wz1000
Do evil-mode users count?

------
lorddoig
Religion is borne out of not knowing what on Earth is the right thing to do,
and hence having to _adopt_ a certain approach instead of being _convinced_ by
the merits of one over the others: it's policymaking in the absence of facts.
Do something for long enough and it becomes a part of who you are (your so-
called "worldview"), at which point an attack on the thing is actually an
attack on the ego, and we'll naturally and automatically defend it with the
same dirty emotional bullshit trickery we use to gloss over all our
insecurities.

The toxicity of this is not limited to front-end development, of course --
this is, in fact, the very framework we base modern democracy on. It's just
lots of completely unqualified people (myself included) making a great deal of
noise based on shitty information, then - once it inevitably goes tits up - we
get together and point the finger at some scapegoat to absolve ourselves of
liability.

We like to think that as a society we've developed from the primitive peoples
of yore, but really all that's happened is that communication tech and
industrialism has allowed us to mass produce and saturate our world with the
achievements of a very, very select few and thereby create the illusion of
universal progress. This entirely baseless pretence is giving unjust
confidence to the (figuratively) blind, who are now leading us into a society
of completely misguided moral absolutes: one in which local government
officials will parent your kids for you with legislation, physicists will be
lynchmobbed for the wrong choice of shirt, and Github will outlaw the use of
the word 'meritocracy' for fear of intimidating the weak.

So yes, these issues are very important, but HTML and CSS hate games are the
least of our worries.

------
mpdehaan2
From running a large OSS project, the general passive-aggressive (or just
plain aggressive) complaint ratio to the amount of "thanks, this is awesome"
ratio can be quite overwhelming and painful at times. Usually.

I've basically resolved to not complain about anything given to me for free,
ever, at least on twitter, because I've felt so much of it. "Why I personally
prefer X vs Y" is ok.

For twitter, it can be anything from a software project to some customer
service guy somewhere, but it's important to remember that real people are out
there.

That guy's boss might be a jerk to person XYZ about what you said about his
software on twitter, even if you weren't particularly upset. And you
definitely didn't make the author feel very good either. And who are you to
complain when you couldn't build it yourself, and are putting in much less
energy?

If you have a problem with free OSS bits, help fix it, or use something else.

If you've paid for something, this is what support departments and customer
service groups are before too.

( This blog is good reading on the subject too -
[http://powazek.com/posts/3368](http://powazek.com/posts/3368) )

------
acomjean
This is one reason despite its oddities, I like php.

Maybe because it because as a php programmers we're used to being the butt end
of jokes, maybe because we think the language is eventually going to end up a
backend serving json... but the people I've met at php conferences have been
nice, humble and interesting. More talk about projects than tech. Haven't met
a lot of dismissive people or people badmouthing other languages.

~~~
claar
That's funny; for me, it's the one annoyance I have with PHP.

I love PHP; there's some really neat modern OO methodology and cutting-edge
ideas and best-practices that I'd love to share on HN, for example.

But with the PHP-haters, the downsides of sharing outweigh the benefits. So
like the OP article says, quality PHP developers just put their heads down and
get back to work. Let Laracasts do the best-practices evangelism and move on.

------
ChuckMcM
If this is a 'thing' it explains a lot. I tried to engage some front end
developers on their stack and got the whole smack talk thing thrown back at
me. I was trying to figure out if it was something I said or what.

------
mgkimsal
I played this game a bit in the late 90s and early 2000s, and ... it's just so
tiring. And largely pointless. So many good points in the comments here,
they've triggered so many more thoughts. I talk about this topic on and off at
user groups now and then - informally, not full on presentations, but usually
get thanked by someone afterwards.

There are so many tool choices that it's really really hard to even trust
anyone's 'review' of the tool landscape, even in a particular vertical niche.
And so many people that are writing the tools (and promoting them) are, in
fact, primarily tool authors, not necessarily having to face the sort of 'in
the trenches' problems that most devs have to deal with (both technical and
political).

Denouncing tech XYZ because you're using ABC is often, I've found, done
because the person wants some external feedback that they made the 'right'
decision. Public (on forums or f2f) signaling of the choice you made, with
some 'reason', lets people support you and your choice. There's certainly more
to it, but that seems to be the root motivation I've seen in a lot of people
in my locality who behave this way in public.

I've told the story about being at a ColdFusion developer conference, helping
set up chairs the night before. One of the speakers starting ragging on PHP.
Of all the people to be picking on an 'easy target' like PHP, I would have
thought CF devs would be more sensitive to that sort of trash talk, likely
having been on the receiving end more often than not. Not this guy - we were
all treated to a 5 minute rant about how shitty PHP was is, PHP devs need
training wheels to use the internet, etc. Unbelievable, but right there in
front of me.

When I did it, I was trying to make sure my reasons for my choices were
'correct' (tech X was faster to write, faster to execute, cheaper, etc). After
a few more years around the block, it became apparent that there are generally
so many more factors at play that are not always readily apparent, and _often_
, the best choice is the one someone already knows, because estimating
learning time for 'newtechX' is essentially impossible (doubly so for stuff
that's not even out of beta yet).

Argh... maybe we can get Rachel to come speak at one of our local dev groups -
this message needs to be driven home more, I think.

------
BasDirks
"When we monger hate, we inspire these guys. These guys are all kinds of
trouble, even if they aren't outright malicious. We can spread spread harm
through them."

You are doing the we vs. them thing, not just in this sentence, but throughout
the text. It's never the right approach. There's some us and some them in all
of us. I see this often in writing on social issues in tech; a strong tendency
to categorize and polarize, even when intentions are good. Regardless, I find
the article well written and on point.

------
ajoy39
I'm actually largely experiencing this issue right now trying to pick a front
end framework for an FOSS project. I know I'm using Rails on the backend
because that's what I'm most comfortable in, but I can't decide between
Angular.js and EmberJS and 99% of the articles comparing the two just sound
attack-ey and biased and I don't want to make a decision based on someone
else's preconceived biases. If anybody knows a good compare/contrast between
Angular and Ember for use with Rails that is, mostly, unbiased and doesn't
resort to "this framework is better because holy shit did you see how the
other one solved this same problem in a slightly different but horrifically
terrible way?" I would greatly appreciate it.

~~~
noir_lord
Depending on your requirements don't rule out other frameworks.

I use Knockout (which is supported, just had a release, picked up some new
core devs and added component support) extensively and I like it a great deal.

It's not as large as either Angular or Ember but it's worth a look.

Steve Sanderson has an awesome video on it [1] which is worth a watch even if
you aren't interested in Knockout, fella clearly loves and is passionate about
what he does.

[1] [http://blog.stevensanderson.com/2014/06/11/architecting-
larg...](http://blog.stevensanderson.com/2014/06/11/architecting-large-single-
page-applications-with-knockout-js/)

~~~
danielearwicker
+1 Knockout is a treasure chest of powerful patterns from remarkably few core
concepts.

------
turb0
"teaming with polarized opinions" I'm not sure if that's a pun or a typo, but
I sincerely appreciated it either way.

This article was a good read. Not everyone has the happy circumstance to work
with the "latest and greatest" stack.

~~~
bjt
I was assuming a typo, but good point about the pun.

------
spain
This article strikes so many right notes for me and I can easily come up with
even more examples of it in action, like systemd. I'm sure there exist valid
criticisms but there's also a lot of people who would hate it just to look
smug or feel like they're smarter to reject something so popular[0]. "If
there's a lot of people who like something, and I find a reason to _detest_
that thing, that means I know something they don't. Go me. Everyone will think
I'm cool and respect me. Bring in the upvotes."

I also used to be the guy to swear by Emacs and C, bitch about how awful Java
and C++ are with all the crappy IDEs (despite never having tried them out,
just reading articles and comments bashing them). Eventually I matured a
little and tried both out, then tried a few IDEs like NetBeans, QtCreator, and
PyCharm, and I actually prefer them now. If I had never broken out of the
"hating circle" I would only be able to write programs in Lisp and C. Some of
you may think that's fine, even preferable. Personally in retrospect I'm happy
to have widened my horizons.

[0] This is from my _own_ experience, I used to do that.

------
pnathan
There's certainly a Thing where you tribalise through aggression.

There's also a Thing where you signal your knowledge about crappy solutions by
peeing on the crap; this informs others that you have enough knowledge to Not
Use Crap. (or, alternatively, showcase yourself as an elitist jackass. ymmv).

------
anigbrowl
This is a general problem in modern communication, thanks in large part to the
accelerating factor of the internet. It's evolved to the point that making
observations about the weaknesses of an overly adversarial/confrontational
position is dismissed as a 'tone argument,' along with negative insinuations
about the proponent's motives. It seems as if many people prefer to be in a
social echo chamber and express violent rejection of anything that is
considered foreign to that environment. I wouldn't be surprised if there is
some obvious model for this in the world of cell biology.

------
blhack
Hmm, while I understand this (I've even written about it before!) I wonder
about this specific example. Maybe another example would be better (for
instance: people who _hate_ on PHP).

I've seen plenty of people present things as _literally the worst_ , but
they're doing so in a very tongue in cheek way.

For instance: javascript is totally stupid and does totally stupid things
stupidly (unlike go, which is awesome, and doesn't do stupid things) - The
Presentation (given by a huge javascript fan who literally writes javascript
all day every single day).

------
dreamweapon
_I got the impression he was hiding his own fear of inadequacy behind a wall
of disapproval and smack talk. I know this method. I used to use it myself,
when I felt for sure I’d be fired from the team as soon as they realized I’d
never used Handlebars._

Fascinating. In that this episode represents an only slightly exaggerated
instance of a pattern of such profoundly dysfunctional and self-blocking
behavior in the community that has become so widely entrenched that it is
beyond epidemic proportions; it has practically become the new norm.

~~~
athesyn
Or maybe he was being exceedingly dismissive because it's funny? I don't
understand the need to make all these assumptions.

------
Cthulhu_
What the author describes is just one step into becoming a godlike developer.
I can't find a link / attribution right now, but it starts off as new, then
you get skills and start to feel smug and good about yourself - which is in a
lot of cases combined with a hating on other developers or packages. The next
two steps are disillusionment - taking a fall, realizing you're still a very
new developer, etc, and only from there on out do you start to develop into a
more exemplary Good Developer.

Or not, everyone's different.

------
yarou
I actually disagree with the entire premise of this article, and the sentiment
of that premise. This seems to be a thinly veiled attempt at censoring free
speech; "you hurt my feelings, therefore you are not allowed to talk."

Frankly, I'd much rather have someone like Linus chew me out, because at least
it's an honest and clear criticism. The tech industry prides itself on being
an open and transparent environment, and I don't think that should change
because someone's feelings got hurt.

~~~
jschwartzi
Linus's butt-chewings are generally specific to one aspect of someone's code.
He doesn't generally say "Framework X sucks because Y, let's all talk about
how much it sucks for several hours instead of being productive."

I suspect that in many cases he gets frustrated when people repeatedly do
something he's asked them not to do because he has to review their patches
over and over again.

~~~
mvc
> He doesn't generally say "Framework X sucks because Y

Not sure how relevant frameworks are to the world of kernels but I'd imagine
he'd chew you out if you tried to get any C++ into the kernel.

------
imhelpingu
She touches on this in the comments there, but I see this becoming especially
problematic in exclusionary hiring practices.

You can go to an interview as an expert in a given language, but if you don't
know what framework a company just happens to use, you'll lose the job and
they might give it to a novice who does.

Also, I would be curious to know which conference she is referring to. I
realize this is a pandemic problem, but if she would name some names it might
get the ball rolling on turning things around.

------
sheensleeves
Reminds me of a "too long; did read" psychoanalysis link:
[http://rint.rechten.rug.nl/rth/dennen/a-panal.htm](http://rint.rechten.rug.nl/rth/dennen/a-panal.htm)

Freud had it that sublimated aggression provides energy. Like all things w/ an
indisputable theorist, I'm not sure if he's on the right page. However if it
was true, it would explain the value in developer holy wars.

Quote from the above link -->

The sublimated libido, according to Freud, contributes to the formation and
maintenance of permanent object relations and to the 'molding of psychic
structures'; once the psychic structures are formed, the energy is at the
disposal of the ego and the superego. Similarly, aggressive energy is
'neutralized' (Hartmann, 1952) and thus can be transferred from the id to the
ego. According to Hartmann, Kris & Lowenstein, "the capacity to neutralize
large quantities of aggression may constitute one of the criteria of ego
strength".

------
Animats
There's a good reason for this - pick an unpopular toolchain and you can
become unemployable.

------
serve_yay
I agree that this sort of thing is bad, but that notion is starting to reach
saturation level. At least for the things I read on the web. Boorish
teammates, hostile speakers, misbehavior at conferences, people dismissing
technical ideas for dumb non-technical reasons, etc. are indeed all bad
things. Noted.

Also, maybe part of the problem is thinking/assuming that a bunch of front-end
devs are going to be "your people". Yeeuch. It's a job, some of those people
you will like and get along with, most of them less so.

------
j_baker
I don't think there's anything wrong with being negative per se. I work at
Google, and can think of a couple of developers who complain about others'
products _a lot_. And they can usually get away with it, and in fact even be
popular simply because they're _helpfully_ negative.

What's wrong is when someone is _unhelpfully_ negative. This is the person who
just complains no matter what happens.

------
w0rmwood
We do tend to get very tribal/ideological. This likely happens in all fields,
but that doesn't excuse the behavior. Getting tunnel vision and only thinking
a specific way of development/design is right is problematic.

There's a difference between this and just general "best practices". The
latter are positive and suggestive whereas the former tends to be very
absolute.

------
hownottowrite
In my experience, the continually evolving art of programming lends itself to
cognitive dissonance. One has a history of doing something in manner X and yet
manner Y holds clear promise. Two thoughts collide. In some individuals is
expressed as a rejection of Y leading to entrenchment in X. The byproduct is
irritation or even rage.

~~~
collyw
I see the opposite.

Relational Databases are a perfectly good tool and will fit 90% of the
applications being developed. But NoSQL is shiny, and we have to try the new
way (despite the fact the new way was what people were doing before relational
databases came along). Likewise with back end languages. We have plenty of
good mature solutions on the back end, but people want to use Nodejs. Fine if
your use case is many concurrent connections, but otherwise why not use
something more "traditional" (mature, tested, understood).

------
jqm
"An acutely negative mindset..."

Some people may say front end developers are not "programmers" in the strict
sense of the word, but I believe much of this still applies...

[http://edu.mkrecny.com/thoughts/be-nice-to-
programmers](http://edu.mkrecny.com/thoughts/be-nice-to-programmers)

------
runewell
Great article, I myself have been both on the sending and receiving end of
such discourse. I like OSX and love Node.js which can become a source of
confrontation. Talk about node.js in the Reddit programming sub and prepare
for the backlash :)

------
snarfy
We would all do better to lead by example.

Instead of bashing technology X, show everyone how good technology Y is. There
is no need to be negative about anything. There is enough negativity in the
world to go around.

------
spencer414
I appreciate you highlighting a sentiment that I too have felt at many meetups
and in the JS community. It's toxic and unproductive.

------
Puts
This industry has become too anxious. It's like the new standard is when ever
someone makes an post like "10 books you should read" and the first comment
here on HN is "Why the hell are you telling me what to read?".

When I express my opinions I don't have to account for anyone. My opinions are
my opinions and I'm going to be proud of them. And personally I want everybody
else to feel the same. Be opinionated and be proud!

~~~
otterley
It is a subtly different - and more persuasive - thing to say "Here are 10
books I liked, and here's why" than it is to say "Here's 10 books you should
read." Imperative statements tend to evoke more visceral reactions than
indicative ones.

~~~
meric
When I use "you" in a sentence, people compare who they are to the "you" I've
described, by trying to find differences.

When I use "I" in a sentence, people compare who they are to me, by trying to
find similarities.

That's why the former is more persuasive.

~~~
meric
Latter.

------
ExpiredLink
BTW, the page doesn't render properly in my browser (current FF).

~~~
saidajigumi
FWIW, looks fine in FF 36.0.1 here, same as in Chrome 41. Maybe you have an
extension that's causing issues?

~~~
ExpiredLink
Here is a picture that shows the problem:

[http://i.imgur.com/iunhbuR.jpg](http://i.imgur.com/iunhbuR.jpg)

~~~
saidajigumi
Bingo! The dual sidebars are independently scrollable (via overflow-y: auto on
the relevant containers). On recent OS X versions with the vanishing
scrollbars, this looks great. But on other platforms (e.g. Windows, such as
you're using), boom!

------
turbostyler
I find it sexist that the author chose to use the words "this guy" and "don't
be him". Would she be writing this same article if the presenter at the
conference were a woman?

~~~
makomk
I find it sexist that you're complaining about her using the words "this guy"
and "don't be him". Would you be writing the same comment if the blogger was a
man? (Not even joking. There are far more gendered comments by men in this HN
discussion that didn't get this kind of response.)

~~~
turbostyler
What is satire?

