how to argue about code

Download How to Argue about Code

If you can't read please download the document

Upload: andrew-dupont

Post on 20-Aug-2015

3.213 views

Category:

Technology


3 download

TRANSCRIPT

  1. 1. How to argue about Code
  2. 2. How to argue about Code(on the internet)
  3. 3. Why?
  4. 4. internet+open-source software+ GitHub
  5. 5. Our argumentsshould be purposeful.
  6. 6. ideal: scientic research
  7. 7. reality: political debate
  8. 8. In science it often happens that scientists say, You know thats 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 doesnt 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)
  9. 9. Who the hell are you?
  10. 10. No one of consequence.
  11. 11. Where do you get ocensoring me, you fascist?
  12. 12. I dont.
  13. 13. Motives for havinga code argument:
  14. 14. to troll
  15. 15. to feel awesome about yourself
  16. 16. to persuade othersto your way of thinking
  17. 17. to understandthe subject better
  18. 18. An argument has three goals.
  19. 19. Goal 1: It should producea wise agreement, if possible.
  20. 20. Goal 2:It should be ecient.
  21. 21. Goal 3:It should not damagethe relationship between parties.
  22. 22. Our case study:
  23. 23. the original ticket:https://github.com/twitter/bootstrap/issues/3057
  24. 24. Tactics for arguments:
  25. 25. Tactic 1:Separate the people from the problem.
  26. 26. bad:the objective nature of the problemhow humans feel about the problem
  27. 27. bad:the objective nature of the problemhow humans feel about the problem
  28. 28. good:the objective nature of the problemhow humans feel about the problem
  29. 29. the original ticket:
  30. 30. response from Jacob Thornton (@fat):
  31. 31. comments one and two:
  32. 32. comment three:
  33. 33. comment four:
  34. 34. (this is why you should be nice)
  35. 35. Tactic 2:Focus on interests, not positions.
  36. 36. Tactic 3:Invent options for mutual gain.
  37. 37. Tactic 4:Insist on objective criteria.
  38. 38. (standards)
  39. 39. (benchmarks)
  40. 40. THE SELECTOR WARS
  41. 41. jsPerf(jsperf.com)
  42. 42. So what should I do?
  43. 43. How to think:
  44. 44. Retain a willingness to be convinced
  45. 45. Imagine where othersare coming from
  46. 46. Account for your own taste
  47. 47. Account for your own emotions
  48. 48. John ResigI learned some things about jQuery today
  49. 49. Recognize derails as they happen
  50. 50. Ahead: An inventory of the discussions taking place in a single closed ticketon Twitter Bootstraps GitHub project
  51. 51. main question:Should Bootstrap change asyntactic shortcut that does notminify properly in JSMin?
  52. 52. main question (broadened): Should library authors care about interoperability with JSMin?Or should JSMin accommodate codethat Crockford nds distasteful?
  53. 53. derails and meta-discussions perpetuatedby at least two of the 143 ticket participants:
  54. 54. People who dont usesemicolons areJavaScript hipsters.No, people who are fanatical about semicolons are justspreading FUD.
  55. 55. @fat is being a jackassand a bad projectsteward. No, people like you are bitching about a librarythey got for free.
  56. 56. Semicolon or not, that line should still be rewritten.
  57. 57. JSMin sucks anyway.People should use some other minier.
  58. 58. Who cares about minication?Everyones got a fast connection now.
  59. 59. Weve now spent like a hundred comments arguing about a single semicolon that @fat is too stubborn to add.
  60. 60. We are bikeshedding like hell up in here.
  61. 61. Stop posting on this ticket! GitHub sends me anotication with each new comment.
  62. 62. also: trolls
  63. 63. also: wisecracks
  64. 64. meanwhile:
  65. 65. Staying on topicrequires moderation.
  66. 66. How to speak:
  67. 67. Be nice.
  68. 68. Speak with surgical precision.
  69. 69. E-Prime
  70. 70. Any proposition containing the word is creates a linguistic structural confusion which will eventually give birth to serious fallacies.Alfred Korzybski, Semanticist
  71. 71. PHP is awful.
  72. 72. PHP is awful.Whenever I use PHP, I end up longing for the logical API and unsurprising behavior of Ruby or JavaScript.
  73. 73. jQuery is easier to use than MooTools.
  74. 74. jQuery is easier to use than MooTools.I nd jQuery more intuitiveto use than MooTools.
  75. 75. Be honest in yourcharacterizations.
  76. 76. What if the other side wont play along?
  77. 77. Dont rise to the bait.
  78. 78. Emphasize the contrast betweenyour tactics and your opponents.
  79. 79. Nicole Sullivan,Dont feed the trolls http://bit.ly/JWksIU
  80. 80. In short: Postels Law
  81. 81. Why do I have totake the high road?
  82. 82. (n)