clojure lightning talk
DESCRIPTION
David Nolen gives a lightning talk about ClojureTRANSCRIPT
JS.Next.Next.Next...
We could talk about
“Hard” Stuff
“Easy” Stuff
?
ClojureScript
First, JavaScript
JavaScript is mainstreaming functional
programming
JavaScript is mainstreaming alternative
object systems
Yet JavaScript has serious problems
Problems
๏ Language has woeful deficiencies ๏ Yet, standardization process moves
at a glacial pace ๏ Many, many stakeholders ๏ Legacy Browsers
Solutions
Build your own language on top of JS!
CoffeeScript
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.
Browser REPL & Friends
๏ Develop against any browser live without refreshing
๏ Richer data structures - Sets anyone? ๏ Rhino works, Node.js another great
target
The Compiler & Friends
๏ ~1000 lines of code ๏ Easy to hack ๏ Google Closure Compiler works
incredible magic - inlining, renaming, dead code elimination
Language Features
๏ Add language features via macros ๏ Hate callbacks? Add delimited
continuations ๏ Want Scala/Haskell style pattern
matching - it’s a library
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
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
Thanks!