How to argue
 about Code
How to argue
 about Code
  (on the internet)
Why?
internet
          +
open-source software
          +
       GitHub
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
How to Argue about Code
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.
Our case study:
the original ticket:
https://github.com/twitter/bootstrap/issues/3057
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
How to Argue about Code
How to Argue about Code
How to Argue about Code
How to Argue about Code
jsPerf
(jsperf.com)
“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?
derails and 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.
How to Argue about Code
Emphasize the contrast between
your tactics and your opponents’.
Nicole Sullivan,
“Don’t feed the trolls”
   http://bit.ly/JWksIU
In short: Postel’s Law
“Why do I have to
take the high road?”
(fin)

More Related Content

PPT
Developing Critical Thinking Skills
PDF
How to Argue about JavaScript
PDF
Stay mean and argue creator 533007
PPT
Developing Critical Thinking Skills
PPT
Community Management Presentation
PDF
457 WWDC08 Student Welcome
PPTX
Running a Successful Open Source Project
PPT
TYPO3 Communications Workshop: Communications
Developing Critical Thinking Skills
How to Argue about JavaScript
Stay mean and argue creator 533007
Developing Critical Thinking Skills
Community Management Presentation
457 WWDC08 Student Welcome
Running a Successful Open Source Project
TYPO3 Communications Workshop: Communications

Similar to How to Argue about Code (20)

PDF
The Open Manifesto: how to work smarter, supercharge collaboration and (maybe...
PDF
Content and Coding are not Commodities
PDF
Communication in Open Source
PDF
Open-Source Project Tools for Corporate Projects?
PPT
Trends In Technical Communication
PPTX
Open Source Project Management Part 2
PDF
How2research
PPT
Technical Communications 101 (First draft)
PDF
Technical Communication and User Communities
PDF
Pitfalls of a Popular Project
PPT
Wikipedia Workshop presentation
PPTX
Open Source Project Management
PPTX
Ideation,demos
PDF
Life in Open Source Communities, ApacheCon US 2009
PDF
Agile Test Case Management
PPTX
Crafty communications - Dealing with the pesky people parts of communications
PPTX
Industry-Academia Communication In Empirical Software Engineering
PDF
Pse 2012-better-tools-for-a-better-world
PPTX
How to stop sucking and be awesome instead
PPTX
Howtostopsucking
The Open Manifesto: how to work smarter, supercharge collaboration and (maybe...
Content and Coding are not Commodities
Communication in Open Source
Open-Source Project Tools for Corporate Projects?
Trends In Technical Communication
Open Source Project Management Part 2
How2research
Technical Communications 101 (First draft)
Technical Communication and User Communities
Pitfalls of a Popular Project
Wikipedia Workshop presentation
Open Source Project Management
Ideation,demos
Life in Open Source Communities, ApacheCon US 2009
Agile Test Case Management
Crafty communications - Dealing with the pesky people parts of communications
Industry-Academia Communication In Empirical Software Engineering
Pse 2012-better-tools-for-a-better-world
How to stop sucking and be awesome instead
Howtostopsucking

Recently uploaded (20)

PDF
TicketRoot: Event Tech Solutions Deck 2025
PPTX
Slides World Game (s) Great Redesign Eco Economic Epochs.pptx
PDF
Intravenous drug administration application for pediatric patients via augmen...
PDF
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
PDF
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
PDF
State of AI in Business 2025 - MIT NANDA
PPTX
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
PPT
Overviiew on Intellectual property right
PDF
Altius execution marketplace concept.pdf
PDF
Child-friendly e-learning for artificial intelligence education in Indonesia:...
PDF
Decision Optimization - From Theory to Practice
PDF
Domain-specific knowledge and context in large language models: challenges, c...
PPTX
Information-Technology-in-Human-Society (2).pptx
PDF
Human Computer Interaction Miterm Lesson
PDF
Optimizing bioinformatics applications: a novel approach with human protein d...
PPTX
CRM(Customer Relationship Managmnet) Presentation
PPTX
Build automations faster and more reliably with UiPath ScreenPlay
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PDF
Technical Debt in the AI Coding Era - By Antonio Bianco
PDF
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...
TicketRoot: Event Tech Solutions Deck 2025
Slides World Game (s) Great Redesign Eco Economic Epochs.pptx
Intravenous drug administration application for pediatric patients via augmen...
CCUS-as-the-Missing-Link-to-Net-Zero_AksCurious.pdf
The Digital Engine Room: Unlocking APAC’s Economic and Digital Potential thro...
State of AI in Business 2025 - MIT NANDA
From XAI to XEE through Influence and Provenance.Controlling model fairness o...
Overviiew on Intellectual property right
Altius execution marketplace concept.pdf
Child-friendly e-learning for artificial intelligence education in Indonesia:...
Decision Optimization - From Theory to Practice
Domain-specific knowledge and context in large language models: challenges, c...
Information-Technology-in-Human-Society (2).pptx
Human Computer Interaction Miterm Lesson
Optimizing bioinformatics applications: a novel approach with human protein d...
CRM(Customer Relationship Managmnet) Presentation
Build automations faster and more reliably with UiPath ScreenPlay
NewMind AI Journal Monthly Chronicles - August 2025
Technical Debt in the AI Coding Era - By Antonio Bianco
“Introduction to Designing with AI Agents,” a Presentation from Amazon Web Se...

How to Argue about Code