Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bound by Convention

Bound by Convention

Presented at RuPy 2013 in Budapest.

Slides don't really provide much context on their own. I'll have to write this up as a blog post some time.

The general thesis was the importance of understanding why things are the way they are. I made a lot of comparisons to Natural Languages as a way to challenge the way we understand Programming Languages. The talk was unfocused and sporadic, and covered a lot of ground. Here are some links for references made in the talk:

- The Space Shuttle & The Horse's Rear End: http://www.astrodigital.org/space/stshorse.html
- _why's unholy: https://github.com/whymirror/unholy
- JVM: http://en.wikipedia.org/wiki/Java_virtual_machine
- Strongtalk: http://en.wikipedia.org/wiki/Strongtalk
- Chomsky: http://en.wikipedia.org/wiki/Colorless_green_ideas_sleep_furiously
- Turing Completeness: http://en.wikipedia.org/wiki/Turing_completeness
- Denotation: http://en.wikipedia.org/wiki/Denotation
- Basic Color Terms: Their Universality and Evolution: http://en.wikipedia.org/wiki/Basic_Color_Terms:_Their_Universality_and_Evolution
- Pirahã Language: http://en.wikipedia.org/wiki/Pirahã_language
- Hangul: http://en.wikipedia.org/wiki/Hangul
- Triliteral Semitic Roots: http://en.wikipedia.org/wiki/Semitic_root
- P = NP: http://simple.wikipedia.org/wiki/P_versus_NP
- Quantum Logic Gates: http://en.wikipedia.org/wiki/Quantum_gate

D29bb4d2d2f2ba2c2fb5a329e1e4651f?s=128

Mattt Thompson

October 12, 2013
Tweet

Transcript

  1. Bound By Convention Mattt Thompson RuPy 13

  2. The Space Shuttle & The Horse's Rear End

  3. 4', 8.5"

  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. Specifications and bureaucracies live forever

  11. How Things Are Done

  12. Everything has a Reason History Connection

  13. Baconian Method

  14. Postmodernism

  15. Why?

  16. Isn't it remarkable that humans organize themselves according to how

    they talk to computers?
  17. Narcissism of Small Differences

  18. Ruby vs. Python • Indentation Sensitivity • Enumerators vs. Comprehensions

    • Statements vs. Expressions • Implicit vs. Explicit Self • High-Level Scripting Languages • Dynamically Typed • Interactive Shell • Shared Keywords & Syntax • Common Purposes Differences Similarities
  19. _why's unholy

  20. JVM

  21. A brief aside...

  22. Colorless green ideas sleep furiously

  23. colorless green ideas sleep furiously French Germanic Greek Germanic Latin

  24. English sleep French dormir German schlafen Hungarian alszik Arabic num

    Russian spat
  25. English pineapple French ananas German ananas Hungarian ananász Arabic ananas

    Russian ananas
  26. Influences

  27. Ruby Influences [ ] Array Syntax C {:a => 1}

    Hash Syntax php {a: 1} Hash Syntax Javascript String Methods Perl begin...rescue...ensure / loop, redo, retry Eiffel Postconditionals Caché / JOSS / ALGOL
  28. Python Influences Statement Nesting Indentation ABC from X import Y

    Modula-3 Multiple Dispatch Dylan / C++ Expressions vs. Statements Fotran
  29. Javascript Influences Name Java Semicolons Java Prototypes Self Lambdas Scheme

  30. Clojure Influences S-Expression Syntax Lisp Runtime Java

  31. Ruby Python Javascript Clojure x = 1 + 2 x

    = 1 + 2 var x = 1 + 2 (def x (+ 1 2))
  32. Ruby Python Javascript Clojure [1,2,3].select(&:even?) [x for x in (1,2,3)

    if (x%2 == 0)] ([1,2,3]).filter(function(x) {return x%2 === 0;}); (filter even? [1 2 3]);
  33. Programming Language Characteristics • Object Oriented vs. Functional vs. Procedural

    vs. Imperative • Typed vs. Untyped • Strong vs. Weak Typing • Static vs. Dynamic Typing • Classical vs. Prototypical • Compiled vs. Interpreted • Single vs. Multiple Inheritence • Mutability vs. Immutability • // vs. /* */ vs. # vs. -- Comments • Terse vs. Verbose • Textual vs. Graphical
  34. Turing Completeness

  35. Denotation

  36. C H A I R /tʃɛr/

  37. None
  38. bed

  39. Basic Color Terms: Their Universality and Evolution Brent Berlin and

    Paul Kay (1969)
  40. None
  41. None
  42. None
  43. None
  44. None
  45. Pirahã Language Daniel Leonard Everett

  46. Pirahã Language • Tiny Phonetic Inventory (8 consonants & 3

    vowels) • Whistled to Communicate in Jungle • No Relative Clauses or Grammatical Recursion • No Cardinal or Ordinal Numbers • No Unique Words for Color • Epistemology as Grammatical Construct
  47. 6,000 Natural Languages Hundreds Dying Every Year

  48. English as Universal Programming Language

  49. None
  50. ৈࢿ

  51. Ŧ ũ Ŭ Ů Ŷ ŷ ź ż Ž ſ

    ƀ Ɓ Ƃ ƃ g n d r m b s -/ng j ch k t p h ŧ ɹ ŭ ɹ ɹ Ÿ Ż ɹ ž ɹ ɹ ɹ ɹ ɹ kk tt pp ss jj
  52. Ƅ ƈ ƌ Ƒ Ɩ Ƙ ƅ Ɖ Ə Ɣ

    Ɨ a eo o u eu i ae e oe wi ui
  53. ೠҴয

  54. !"#$%&ا

  55. Initial Medial Terminal ـ# ـ)ـ *ـ ـ+ ـ,ـ -ـ ـ.

    ـ/ـ 0ـ ـ1 ـ2ـ 3ـ ـ4 ـ5ـ 6ـ ـ7 ـ8ـ 9ـ ـ: ـ;ـ <ـ ـ= ـ>ـ ?ـ ـ@ ـAـ Bـ ـC ـDـ Eـ
  56. *,F

  57. k t b

  58. *,F kataba he wrote GH),F katabnā we wrote *,IJ yaktubu

    he writes *,IK naktubu we write *,Fأ aktaba he dictated *,IJ yuktibu he dictates *+GF kātib writer *,IM maktab office
  59. !"# ("!ﻢﻟﺎﻋ ﺎﻳ ﺎﺒﺣﺮﻣ" لﻮﻗ)

  60. • cd • ls • mv • cp • rm

    • mkdir • chmod • pwd • whoami • finger • kill • which • ps • cat • grep • sed • awk • find • cal • date • time • more • less • man UNIX Commands
  61. P = NP

  62. None
  63. 1,267,650,600,000,000,000,000,000,000,000

  64. Quantum Computers

  65. None
  66. None
  67. XOR INPUT A B INPUT A B OUTPUT A XOR

    B 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0
  68. What?

  69. There is no right way to do things. There are

    no sides.
  70. We are a product of our culture. ...but we are

    not beholden to it.
  71. Stay curious. Look around. Introspect.

  72. @mattt

  73. Thanks!