DIALECT OF LISP ‣ HOSTED BY THE JVM ‣ INTEROPERABILITY WITH JAVA LIBRARIES ‣ CODE IS VALID DATA ‣ MACROS FOR METAPROGRAMMING ‣ DATA IS IMMUTABLE BY DEFAULT ‣ MUTATION IS EXPLICIT AND THREADSAFE ‣ DESIGNED FOR CONCURRENCY ‣ OPTIONAL TYPING ‣ TYPE AND VALUE BASED DISPATCH ‣ PREFER LIBRARIES OVER FRAMEWORKS https://clojure.org/about/rationale 2
DIALECT OF LISP ‣ HOSTED BY THE JAVASCRIPT VM ‣ INTEROPERABILITY WITH JAVASCRIPT LIBRARIES ‣ CODE IS VALID DATA ‣ MACROS FOR METAPROGRAMMING ‣ DATA IS IMMUTABLE BY DEFAULT ‣ MUTATION IS EXPLICIT AND THREADSAFE ‣ DESIGNED FOR CONCURRENCY ‣ OPTIONAL TYPING ‣ TYPE AND VALUE BASED DISPATCH ‣ PREFER LIBRARIES OVER FRAMEWORKS 3 https://clojure.org/about/rationale
THE SYNTAX WAS FAIRLY EASY TO LEAN ‣ THE SEMANTICS TOOK LONGER ‣ OBJECT TO DATA MINDSET ‣ STATE AND BEHAVIOUR ARE SEPARATED ‣ READING OTHERS CODE… ‣ DEBUGGING… ‣ IGNORE TESTING TO START WITH ‣ SWITCHING FROM VIM TO EMACS ‣ START SMALL, EVERYONE WRITE SOME PRODUCTION CODE 18
a Book http://www.braveclojure.com/ Watch Rich Hickey talks https://changelog.com/rich-hickeys-greatest-hits/ Sign up to Clojure weekly http://reborg.tumblr.com/ http://www.clojuregazette.com/ Cheatsheet http://cljs.info/cheatsheet/
‣ no backend required ‣ components are just functions ‣ and so are event handlers ‣ they are composable and reusable ‣ no Javascript idiosyncrasies ‣ encourages experimentation ‣ simple made easy 20 https://www.infoq.com/presentations/Simple-Made-Easy