Intro to ClojureScript

@maria__geller
  • Personal background
  • Rationale
  • ClojureScript Syntax
  • Tooling
  • Demos
  • Outro
LiveOps
LiveOps
LiveOps
LiveOps

Clojure rocks and JavaScript reaches.

Rich Hickey, NYC Clojure meet up 20 July 2011

What is Clojure

  • introduced in 2007 by Rich Hickey
  • Lisp dialect
  • runs on the JVM

Why Clojure rocks

  • immutable data structures
  • support for concurrency
  • macros
  • great Java interop

What is ClojureScript?

  • compiles Clojure to JavaScript
  • outputs ES3 compatible JavaScript
  • compiler written in Clojure
  • integrates well with Google Closure

Why ClojureScript?

  • more robust code
    • ECMAScript 3, immutable data structures, advanced optimization
  • same language for back-end and front-end
    • share code
  • great JavaScript interop
    • use existing libraries, JS module support

Finally show me some ClojureScript!

Data Structures

Equality

Functions

Higher-order Functions

JS interop - Property access

JS interop - Function invocation

Tooling

  • source map support
  • REPLs
  • plugins for live code reloading
  • bootstrapped ClojureScript

Demos

In summary

  • more robust and simpler code
    • immutability, macros
  • advanced optimization through Google Closure
  • great JavaScript interop