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

Bound by Convention

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

Avatar for Mattt Thompson

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