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

Mattt Thompson

October 12, 2013
Tweet

More Decks by Mattt Thompson

Other Decks in Programming

Transcript

  1. 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
  2. JVM

  3. 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
  4. Python Influences Statement Nesting Indentation ABC from X import Y

    Modula-3 Multiple Dispatch Dylan / C++ Expressions vs. Statements Fotran
  5. Ruby Python Javascript Clojure x = 1 + 2 x

    = 1 + 2 var x = 1 + 2 (def x (+ 1 2))
  6. 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]);
  7. 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
  8. bed

  9. 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
  10. Ŧ ũ Ŭ Ů Ŷ ŷ ź ż Ž ſ

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

    Ɨ a eo o u eu i ae e oe wi ui
  12. Initial Medial Terminal ـ# ـ)ـ *ـ ـ+ ـ,ـ -ـ ـ.

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

  14. *,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
  15. • 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
  16. 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