ClojureScript is a robust, practical, and fast programming language.
ClojureScript IS …
- Robust, practical, and fast
- Simple, coherent and powerful tool
- A compiler for Clojure
- Targets JavaScript
- Emits JavaScript code
- Compatible with Advanced Compilation mode
- of Google Closure Compiler
- compiles to ECMAScript 3
ClojureScript is NOT …
- Clojure implemented in JavaScript
- but is written entirely in Clojure, as a compiler which emits JavaScript
- JavaScript with Clojure syntax
- but has the same language semantics as Clojure, not JavaScript
Why Clojure?
- Dynamic
- General-purpose
- Interactive development
- Functional
- Immutable
- A Lisp dialect
- code as data
- a powerful macro system
Why JavaScript?
- Unmatched exclusive reach
- Performant JavaScript engines
Why Google Closure?
- Closure Library
- Closure Compiler
- whole program optimization
- minimal load times even with many libraries
Opportunity
Combination of:
- Reach of the JavaScript platform
- Flexibility and interactive development of Clojure
- Whole-program optimization of Google Closure