how to argue about javascript

Post on 17-Jan-2015

4.936 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

How to argueabout JavaScript

How not to argue about semicolons

Our argumentsshould be purposeful.

ideal: scientific research

reality: political debate

“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)

“Who the hell are you?”

No one of consequence.

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

I don’t.

Motives for havinga code argument:

to troll

to feel awesomeabout yourself

to persuade othersto your way of thinking

to understandthe subject better

An argument has three goals.

Goal 1:It should produce

a wise agreement, if possible.

Goal 2:It should be efficient.

Goal 3:It should not damage

the relationship between parties.

Tactics for arguments:

Tactic 1:Separate the people from the problem.

bad:

the objective nature of the problemhow humans feel about the problem

bad:

the objective nature of the problemhow humans feel about the problem

good:

the objective nature of the problemhow humans feel about the problem

the original ticket:

response from Jacob Thornton (@fat):

comments one and two:

comment three:

comment four:

(this is why you should be nice)

Tactic 2:Focus on interests, not positions.

Tactic 3:Invent options for mutual gain.

Tactic 4:Insist on objective criteria.

(standards)

(benchmarks)

THE SELECTOR WARS

“So what should I do?”

How to think:

Retain a willingnessto be convinced

Imagine where othersare coming from

Account for your own taste

Account for your own emotions

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

Recognize derails as they happen

Ahead:An inventory of the discussions

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

Should Bootstrap change asyntactic shortcut that does not

minify properly in JSMin?

main question:

Should library authors careabout interoperability with JSMin?

Or should JSMin accommodate codethat Crockford finds distasteful?

main question (broadened):

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

“No, people who are fanatical about

semicolons are just spreading FUD.”

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

“No, people like you are bitching about a library

they got for free.”

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

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

“JSMin sucks anyway.People should use

some other minifier.”

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

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

“We are bikesheddinglike hell up in here.”

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

also: trolls

also: wisecracks

meanwhile:

Staying on topicrequires moderation.

How to speak:

Be nice.

Speak with surgical precision.

E-Prime

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

Alfred Korzybski,Semanticist

“PHP is awful.”

“PHP is awful.”

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

behavior of Ruby or JavaScript.”

“jQuery is easier to usethan MooTools.”

“jQuery is easier to usethan MooTools.”

“I find jQuery more intuitiveto use than MooTools.”

Be honest in yourcharacterizations.

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

Don’t rise to the bait.

Emphasize the contrast betweenyour tactics and your opponents’.

“Why do I have totake the high road?”

Hellfire and tormentI didn’t have time for:

Ember vs. Backbone

Micro-frameworks

CoffeeScript!

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

Douglas Crockfordvs.

the world

(fin)

top related