Slide 1

Slide 1 text

Bound By Convention Mattt Thompson RuPy 13

Slide 2

Slide 2 text

The Space Shuttle & The Horse's Rear End

Slide 3

Slide 3 text

4', 8.5"

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Specifications and bureaucracies live forever

Slide 11

Slide 11 text

How Things Are Done

Slide 12

Slide 12 text

Everything has a Reason History Connection

Slide 13

Slide 13 text

Baconian Method

Slide 14

Slide 14 text

Postmodernism

Slide 15

Slide 15 text

Why?

Slide 16

Slide 16 text

Isn't it remarkable that humans organize themselves according to how they talk to computers?

Slide 17

Slide 17 text

Narcissism of Small Differences

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

_why's unholy

Slide 20

Slide 20 text

JVM

Slide 21

Slide 21 text

A brief aside...

Slide 22

Slide 22 text

Colorless green ideas sleep furiously

Slide 23

Slide 23 text

colorless green ideas sleep furiously French Germanic Greek Germanic Latin

Slide 24

Slide 24 text

English sleep French dormir German schlafen Hungarian alszik Arabic num Russian spat

Slide 25

Slide 25 text

English pineapple French ananas German ananas Hungarian ananász Arabic ananas Russian ananas

Slide 26

Slide 26 text

Influences

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Python Influences Statement Nesting Indentation ABC from X import Y Modula-3 Multiple Dispatch Dylan / C++ Expressions vs. Statements Fotran

Slide 29

Slide 29 text

Javascript Influences Name Java Semicolons Java Prototypes Self Lambdas Scheme

Slide 30

Slide 30 text

Clojure Influences S-Expression Syntax Lisp Runtime Java

Slide 31

Slide 31 text

Ruby Python Javascript Clojure x = 1 + 2 x = 1 + 2 var x = 1 + 2 (def x (+ 1 2))

Slide 32

Slide 32 text

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]);

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

Turing Completeness

Slide 35

Slide 35 text

Denotation

Slide 36

Slide 36 text

C H A I R /tʃɛr/

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

bed

Slide 39

Slide 39 text

Basic Color Terms: Their Universality and Evolution Brent Berlin and Paul Kay (1969)

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

Pirahã Language Daniel Leonard Everett

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

6,000 Natural Languages Hundreds Dying Every Year

Slide 48

Slide 48 text

English as Universal Programming Language

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

ৈࢿ

Slide 51

Slide 51 text

Ŧ ũ Ŭ Ů Ŷ ŷ ź ż Ž ſ ƀ Ɓ Ƃ ƃ g n d r m b s -/ng j ch k t p h ŧ ɹ ŭ ɹ ɹ Ÿ Ż ɹ ž ɹ ɹ ɹ ɹ ɹ kk tt pp ss jj

Slide 52

Slide 52 text

Ƅ ƈ ƌ Ƒ Ɩ Ƙ ƅ Ɖ Ə Ɣ Ɨ a eo o u eu i ae e oe wi ui

Slide 53

Slide 53 text

ೠҴয

Slide 54

Slide 54 text

!"#$%&ا

Slide 55

Slide 55 text

Initial Medial Terminal ـ# ـ)ـ *ـ ـ+ ـ,ـ -ـ ـ. ـ/ـ 0ـ ـ1 ـ2ـ 3ـ ـ4 ـ5ـ 6ـ ـ7 ـ8ـ 9ـ ـ: ـ;ـ <ـ ـ= ـ>ـ ?ـ ـ@ ـAـ Bـ ـC ـDـ Eـ

Slide 56

Slide 56 text

*,F

Slide 57

Slide 57 text

k t b

Slide 58

Slide 58 text

*,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

Slide 59

Slide 59 text

!"# ("!ﻢﻟﺎﻋ ﺎﻳ ﺎﺒﺣﺮﻣ" لﻮﻗ)

Slide 60

Slide 60 text

• 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

Slide 61

Slide 61 text

P = NP

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

1,267,650,600,000,000,000,000,000,000,000

Slide 64

Slide 64 text

Quantum Computers

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

What?

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

We are a product of our culture. ...but we are not beholden to it.

Slide 71

Slide 71 text

Stay curious. Look around. Introspect.

Slide 72

Slide 72 text

@mattt

Slide 73

Slide 73 text

Thanks!