React
• Declarative
• Component based
• JS library for UI
• because UI is hard
• because DOM
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
Virtual DOM
Slide 9
Slide 9 text
Virtual DOM
Slide 10
Slide 10 text
Virtual DOM
Slide 11
Slide 11 text
Virtual DOM
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
https://dorey.github.io/JavaScript-Equality-Table/
a == b
Slide 16
Slide 16 text
a === b
https://dorey.github.io/JavaScript-Equality-Table/
Slide 17
Slide 17 text
https://eqeq.js.org/
Slide 18
Slide 18 text
Avoid JS?
• TypeScript
• Optional static typing
• Elm
• Influenced by Haskell, ML, OCaml, F#
• Static typing + static type checking
• Immutable data, persistent data structures
• ReasonML
• OCaml + static typing
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
Clojure
• Dynamically typed
• Compiled
• Dialect of LISP
• Works on top of JVM
• Homoiconic
Slide 24
Slide 24 text
Clojure
• Dynamic
• Compiled
• Dialect of LISP
• Works on top of JVM
• Homoiconic
• Data-driven
• lists '(a b c)
• vectors [a b c]
• maps {:a "foo" :b "boo"}
• sets #{a b c}
• Immutable
Slide 25
Slide 25 text
Core philosophy
•Data is simple
•Small, composable libraries
•Stable world
vs