As an introduction to Clojure for JVM developers who might have only heard of or dabbled in it, I will try to respond to three-and-a-half frequently asked questions:
1) What's the story with Clojure (and what does it mean for me)?
2) What does working with Clojure look like?
3) What can/cannot I do with Clojure (that I can/cannot do elsewhere)?
To answer them, we will:
* Look at its five major aspects (dynamic, functional, hosted, concurrent, polymorphic), and how and why Clojure came to serve them.
* Walk through setup, basic syntax and semantics and workflow.
* Highlight some of its major features with a glimpse at real-world and practical code examples.
* Look at Clojure's (current) limitations: mobile/Android, scripting, etc.
* Discuss Clojure's community, roadmap, version 1.4, JDK 8/9/10 and where it could all go in the future.
* Discuss Clojure tooling and deployment options, including, yes, build. And IDEs (i.e. you don't have to use Emacs).