20. ClojureScript
๏ Namespaces without the tedium
๏ Can modify native prototypes freely
(because of ubiquitous
namespacing). Want to add methods
to NodeList? Go ahead!
๏ Ships with rich abstractions - invent
new APIs only as a last resort. Bye,
bye interoperability nightmares.
21. Browser REPL & Friends
๏ Develop against any browser live
without refreshing
๏ Richer data structures - Sets anyone?
๏ Rhino works, Node.js another great
target
22. The Compiler & Friends
๏ ~1000 lines of code
๏ Easy to hack
๏ Google Closure Compiler works
incredible magic - inlining,
renaming, dead code elimination
23. Language Features
๏ Add language features via macros
๏ Hate callbacks? Add delimited
continuations
๏ Want Scala/Haskell style pattern
matching - it s a library
24. Takeaways
๏ The web changes very, very quickly -
complexity surface growing (many
possible clients)
๏ Our tools should allow us to control
this complexity and gain competitive
advantage
๏ JavaScript is ill-suited for the
challenges we want to face
25. Clojure(Script)
๏ Robust proven backend technology
๏ Can now leverage the same powerful
abstractions on the client
๏ The language can be incrementally grown
(via libraries) to adapt to the unique and
changing needs of your project