SlideShare a Scribd company logo
1 of 87
Download to read offline
How to argue
about JavaScript
How not to argue about semicolons
Our arguments
should 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 off
censoring me, you fascist?”
I don’t.
Motives for having
a code argument:
to troll
to feel awesome
 about yourself
to persuade others
to your way of thinking
to understand
the 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 problem
how humans feel about the problem
bad:




the objective nature of the problem
how humans feel about the problem
good:




the objective nature of the problem
how 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 willingness
 to be convinced
Imagine where others
  are 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 ticket
on Twitter Bootstrap’s GitHub project
main question:

  Should Bootstrap change a
syntactic shortcut that does not
  minify properly in JSMin?
main question (broadened):

     Should library authors care
 about interoperability with JSMin?
Or should JSMin accommodate code
  that Crockford finds distasteful?
meta-discussions perpetuated
by at least two of the 143 ticket participants:
“People who don’t use
semicolons are
JavaScript hipsters.”




                        “No, people who are
                             fanatical about
                         semicolons are just
                            spreading FUD.”
“@fat is being a jackass
and a bad project
steward.”




                           “No, people like you are
                           bitching about a library
                                  they got for free.”
“Semicolon or not, that line
 should 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 semicolon
     that @fat is too stubborn to add.”
“We are bikeshedding
 like 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 topic
requires 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 use
   than MooTools.”
“jQuery is easier to use
     than MooTools.”

“I find jQuery more intuitive
    to use than MooTools.”
Be honest in your
characterizations.
“What if the other side
 won’t play along?”
Don’t rise to the bait.
Emphasize the contrast between
your tactics and your opponents’.
“Why do I have to
take the high road?”
Hellfire and torment
I didn’t have time for:
Ember vs. Backbone
Micro-frameworks
CoffeeScript!
Issue #28: script loading solution
https://github.com/h5bp/html5-boilerplate/issues/28
Douglas Crockford
       vs.
   the world
(fin)

More Related Content

Viewers also liked

Effective Listening
Effective ListeningEffective Listening
Effective ListeningSampath
 
Teaching Paraphrasing to students
Teaching Paraphrasing to studentsTeaching Paraphrasing to students
Teaching Paraphrasing to studentsKevin Cummins
 
Effective listening presentation
Effective listening presentationEffective listening presentation
Effective listening presentationshafiqahshukri
 
Presentation Active Listening
Presentation Active ListeningPresentation Active Listening
Presentation Active Listeningirina_dragnea
 
Paraphrasing Power Point
Paraphrasing Power PointParaphrasing Power Point
Paraphrasing Power PointBMS
 
Paraphrasing
ParaphrasingParaphrasing
Paraphrasingkd4bears
 
The Future of Education is Digital
The Future of Education is DigitalThe Future of Education is Digital
The Future of Education is DigitalPaul Brown
 
What is an insight?
What is an insight?What is an insight?
What is an insight?Umar Ghumman
 

Viewers also liked (9)

Effective Listening
Effective ListeningEffective Listening
Effective Listening
 
Teaching Paraphrasing to students
Teaching Paraphrasing to studentsTeaching Paraphrasing to students
Teaching Paraphrasing to students
 
Effective listening presentation
Effective listening presentationEffective listening presentation
Effective listening presentation
 
Empathy
EmpathyEmpathy
Empathy
 
Presentation Active Listening
Presentation Active ListeningPresentation Active Listening
Presentation Active Listening
 
Paraphrasing Power Point
Paraphrasing Power PointParaphrasing Power Point
Paraphrasing Power Point
 
Paraphrasing
ParaphrasingParaphrasing
Paraphrasing
 
The Future of Education is Digital
The Future of Education is DigitalThe Future of Education is Digital
The Future of Education is Digital
 
What is an insight?
What is an insight?What is an insight?
What is an insight?
 

Similar to How to Argue about JavaScript

Howtostopsucking
HowtostopsuckingHowtostopsucking
HowtostopsuckingHugo Pinto
 
How to stop sucking and be awesome instead
How to stop sucking and be awesome insteadHow to stop sucking and be awesome instead
How to stop sucking and be awesome insteadcodinghorror
 
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Hugo Pinto
 
CityLIS talk, Feb 1st 2016
CityLIS talk, Feb 1st 2016CityLIS talk, Feb 1st 2016
CityLIS talk, Feb 1st 2016benosteen
 
Quora ML Workshop: Sock Puppets and Hoaxes on the Web
Quora ML Workshop: Sock Puppets and Hoaxes on the WebQuora ML Workshop: Sock Puppets and Hoaxes on the Web
Quora ML Workshop: Sock Puppets and Hoaxes on the WebQuora
 
Tech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoTech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoFred Lee
 
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...jodischneider
 
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...Heavybit
 
OpenStack - an authentic critique
OpenStack - an authentic critiqueOpenStack - an authentic critique
OpenStack - an authentic critiqueAndrew Shafer
 
BSSML17 - Topic Models
BSSML17 - Topic ModelsBSSML17 - Topic Models
BSSML17 - Topic ModelsBigML, Inc
 
ARGUMENTATIVE ESSAY PART
ARGUMENTATIVE ESSAY PARTARGUMENTATIVE ESSAY PART
ARGUMENTATIVE ESSAY PARTSandra Long
 
Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013Konrad Malawski
 
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...cyborgology
 
Jeff Atwood - How To Optimize Your Community Platform
Jeff Atwood - How To Optimize Your Community PlatformJeff Atwood - How To Optimize Your Community Platform
Jeff Atwood - How To Optimize Your Community PlatformFeverBee Limited
 
Collaborate: How to bring people together around digital projects
Collaborate: How to bring people together around digital projectsCollaborate: How to bring people together around digital projects
Collaborate: How to bring people together around digital projectsEllen de Vries
 
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...Sue Ganguli
 
Bloomfield Keynote
Bloomfield KeynoteBloomfield Keynote
Bloomfield KeynoteKarl Kapp
 
Data Day Seattle, From NLP to AI
Data Day Seattle, From NLP to AIData Day Seattle, From NLP to AI
Data Day Seattle, From NLP to AIJonathan Mugan
 

Similar to How to Argue about JavaScript (20)

ENG IMS 224, March 19th
ENG IMS 224, March 19thENG IMS 224, March 19th
ENG IMS 224, March 19th
 
Howtostopsucking
HowtostopsuckingHowtostopsucking
Howtostopsucking
 
How to stop sucking and be awesome instead
How to stop sucking and be awesome insteadHow to stop sucking and be awesome instead
How to stop sucking and be awesome instead
 
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
Howtostopsuckingandbeawesomeinstead 120601013410-phpapp01
 
CityLIS talk, Feb 1st 2016
CityLIS talk, Feb 1st 2016CityLIS talk, Feb 1st 2016
CityLIS talk, Feb 1st 2016
 
Quora ML Workshop: Sock Puppets and Hoaxes on the Web
Quora ML Workshop: Sock Puppets and Hoaxes on the WebQuora ML Workshop: Sock Puppets and Hoaxes on the Web
Quora ML Workshop: Sock Puppets and Hoaxes on the Web
 
Tech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoTech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp Chicago
 
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...
Talking is (virtual) work -supporting online argumentation--2013-09-18 Malta ...
 
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...
Jeff Atwood - How to Talk So Your Community Will Listen and Listen So Your Co...
 
OpenStack - an authentic critique
OpenStack - an authentic critiqueOpenStack - an authentic critique
OpenStack - an authentic critique
 
BSSML17 - Topic Models
BSSML17 - Topic ModelsBSSML17 - Topic Models
BSSML17 - Topic Models
 
ARGUMENTATIVE ESSAY PART
ARGUMENTATIVE ESSAY PARTARGUMENTATIVE ESSAY PART
ARGUMENTATIVE ESSAY PART
 
Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013Disrupt 2 Grow - Devoxx 2013
Disrupt 2 Grow - Devoxx 2013
 
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...
On the Political Origins of Digital Dualism: From Rousseau's Masturbating Hab...
 
Jeff Atwood - How To Optimize Your Community Platform
Jeff Atwood - How To Optimize Your Community PlatformJeff Atwood - How To Optimize Your Community Platform
Jeff Atwood - How To Optimize Your Community Platform
 
Collaborate: How to bring people together around digital projects
Collaborate: How to bring people together around digital projectsCollaborate: How to bring people together around digital projects
Collaborate: How to bring people together around digital projects
 
D19-EWRT 1A
D19-EWRT 1AD19-EWRT 1A
D19-EWRT 1A
 
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...
50Pcs Waterproof A4 Self Adhesive Glossy Paper Sticker For Photographic ...
 
Bloomfield Keynote
Bloomfield KeynoteBloomfield Keynote
Bloomfield Keynote
 
Data Day Seattle, From NLP to AI
Data Day Seattle, From NLP to AIData Day Seattle, From NLP to AI
Data Day Seattle, From NLP to AI
 

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

How to Argue about JavaScript