87
How to argue about JavaScript

How to Argue about JavaScript

Embed Size (px)

DESCRIPTION

The rules of diplomatic debate apply just as much to code as they do to anything else. I'm going to try to identify what separates good debate from bad debate, and share specific tactics for keeping these arguments evidence-based, respectful, and drama-free.

Citation preview

Page 1: How to Argue about JavaScript

How to argueabout JavaScript

Page 2: How to Argue about JavaScript

How not to argue about semicolons

Page 3: How to Argue about JavaScript

Our argumentsshould be purposeful.

Page 4: How to Argue about JavaScript

ideal: scientific research

Page 5: How to Argue about JavaScript

reality: political debate

Page 6: How to Argue about JavaScript

“In science it often happens that scientists say, ‘You know that’s a really good argument; my position is mistaken,’ and then they actually change their minds and you never hear that old view from them again. They really do it. It doesn’t happen as often as it should, because scientists are human and change is sometimes painful. But it happens every day. I cannot recall the last time something like that happened in politics or religion.”

Carl Sagan (1987)

Page 7: How to Argue about JavaScript

“Who the hell are you?”

Page 8: How to Argue about JavaScript

No one of consequence.

Page 9: How to Argue about JavaScript

“Where do you get offcensoring me, you fascist?”

Page 10: How to Argue about JavaScript

I don’t.

Page 11: How to Argue about JavaScript

Motives for havinga code argument:

Page 12: How to Argue about JavaScript

to troll

Page 13: How to Argue about JavaScript

to feel awesomeabout yourself

Page 14: How to Argue about JavaScript

to persuade othersto your way of thinking

Page 15: How to Argue about JavaScript

to understandthe subject better

Page 16: How to Argue about JavaScript
Page 17: How to Argue about JavaScript

An argument has three goals.

Page 18: How to Argue about JavaScript

Goal 1:It should produce

a wise agreement, if possible.

Page 19: How to Argue about JavaScript

Goal 2:It should be efficient.

Page 20: How to Argue about JavaScript

Goal 3:It should not damage

the relationship between parties.

Page 21: How to Argue about JavaScript

Tactics for arguments:

Page 22: How to Argue about JavaScript

Tactic 1:Separate the people from the problem.

Page 23: How to Argue about JavaScript

bad:

the objective nature of the problemhow humans feel about the problem

Page 24: How to Argue about JavaScript

bad:

the objective nature of the problemhow humans feel about the problem

Page 25: How to Argue about JavaScript

good:

the objective nature of the problemhow humans feel about the problem

Page 26: How to Argue about JavaScript

the original ticket:

Page 27: How to Argue about JavaScript

response from Jacob Thornton (@fat):

Page 28: How to Argue about JavaScript

comments one and two:

Page 29: How to Argue about JavaScript

comment three:

Page 30: How to Argue about JavaScript

comment four:

Page 31: How to Argue about JavaScript

(this is why you should be nice)

Page 32: How to Argue about JavaScript

Tactic 2:Focus on interests, not positions.

Page 33: How to Argue about JavaScript

Tactic 3:Invent options for mutual gain.

Page 34: How to Argue about JavaScript

Tactic 4:Insist on objective criteria.

Page 35: How to Argue about JavaScript

(standards)

Page 36: How to Argue about JavaScript

(benchmarks)

Page 37: How to Argue about JavaScript

THE SELECTOR WARS

Page 38: How to Argue about JavaScript
Page 39: How to Argue about JavaScript
Page 40: How to Argue about JavaScript
Page 41: How to Argue about JavaScript
Page 42: How to Argue about JavaScript

“So what should I do?”

Page 43: How to Argue about JavaScript

How to think:

Page 44: How to Argue about JavaScript

Retain a willingnessto be convinced

Page 45: How to Argue about JavaScript

Imagine where othersare coming from

Page 46: How to Argue about JavaScript

Account for your own taste

Page 47: How to Argue about JavaScript

Account for your own emotions

Page 48: How to Argue about JavaScript

John Resig“I learned some things about jQuery today…”

Page 49: How to Argue about JavaScript

Recognize derails as they happen

Page 50: How to Argue about JavaScript

Ahead:An inventory of the discussions

taking place in a single closed ticketon Twitter Bootstrap’s GitHub project

Page 51: How to Argue about JavaScript

Should Bootstrap change asyntactic shortcut that does not

minify properly in JSMin?

main question:

Page 52: How to Argue about JavaScript

Should library authors careabout interoperability with JSMin?

Or should JSMin accommodate codethat Crockford finds distasteful?

main question (broadened):

Page 53: How to Argue about JavaScript

meta-discussions perpetuatedby at least two of the 143 ticket participants:

Page 54: How to Argue about JavaScript

“No, people who are fanatical about

semicolons are just spreading FUD.”

“People who don’t use semicolons are JavaScript hipsters.”

Page 55: How to Argue about JavaScript

“No, people like you are bitching about a library

they got for free.”

“@fat is being a jackass and a bad project steward.”

Page 56: How to Argue about JavaScript

“Semicolon or not, that lineshould still be rewritten.”

Page 57: How to Argue about JavaScript

“JSMin sucks anyway.People should use

some other minifier.”

Page 58: How to Argue about JavaScript

“Who cares about minification? Everyone’s got a fast connection now.”

Page 59: How to Argue about JavaScript

“We’ve now spent like a hundred comments arguing about a single semicolonthat @fat is too stubborn to add.”

Page 60: How to Argue about JavaScript

“We are bikesheddinglike hell up in here.”

Page 61: How to Argue about JavaScript

“Stop posting on this ticket! GitHub sends me a notification with each new comment.”

Page 62: How to Argue about JavaScript

also: trolls

Page 63: How to Argue about JavaScript

also: wisecracks

Page 64: How to Argue about JavaScript

meanwhile:

Page 65: How to Argue about JavaScript

Staying on topicrequires moderation.

Page 66: How to Argue about JavaScript

How to speak:

Page 67: How to Argue about JavaScript

Be nice.

Page 68: How to Argue about JavaScript

Speak with surgical precision.

Page 69: How to Argue about JavaScript

E-Prime

Page 70: How to Argue about JavaScript

“Any proposition containing the word ‘is’ creates a linguistic structural confusion which will eventually give birth to serious fallacies.”

Alfred Korzybski,Semanticist

Page 71: How to Argue about JavaScript

“PHP is awful.”

Page 72: How to Argue about JavaScript

“PHP is awful.”

“Whenever I use PHP, I end up longing for the logical API and unsurprising

behavior of Ruby or JavaScript.”

Page 73: How to Argue about JavaScript

“jQuery is easier to usethan MooTools.”

Page 74: How to Argue about JavaScript

“jQuery is easier to usethan MooTools.”

“I find jQuery more intuitiveto use than MooTools.”

Page 75: How to Argue about JavaScript

Be honest in yourcharacterizations.

Page 76: How to Argue about JavaScript

“What if the other sidewon’t play along?”

Page 77: How to Argue about JavaScript

Don’t rise to the bait.

Page 78: How to Argue about JavaScript
Page 79: How to Argue about JavaScript

Emphasize the contrast betweenyour tactics and your opponents’.

Page 80: How to Argue about JavaScript

“Why do I have totake the high road?”

Page 81: How to Argue about JavaScript

Hellfire and tormentI didn’t have time for:

Page 82: How to Argue about JavaScript

Ember vs. Backbone

Page 83: How to Argue about JavaScript

Micro-frameworks

Page 84: How to Argue about JavaScript

CoffeeScript!

Page 85: How to Argue about JavaScript

Issue #28: script loading solutionhttps://github.com/h5bp/html5-boilerplate/issues/28

Page 86: How to Argue about JavaScript

Douglas Crockfordvs.

the world

Page 87: How to Argue about JavaScript

(fin)