End to end development
- performant back end on the JVM, interop with Java, Scala and other JVM libraries, largest coverage of actively developed libraries in the world
- Clojurescript is a clean front end development language with simple way to use javascript and its libraries (cljsjs), producing efficient, lightweight JavaScript code for production (Google Closure compileer)
- simple to use, declarative project management (in Clojure not XML)
- additiional back end and office integraiont with Microsoft .Net (CLR)
- possible to host on other platforms (Erlang VM, etc)
Simple, powerful, fun
- puts the fun back into programming
- clean syntax and straightforward design idioms
- immutable data structures keep design elegant
- state management handled internally (STM, atom, ref) - like having an atomic database in memory that manages state changes
One of the two parents of all programming language design
- fortran & lisp
- Clojure is a lisp for the modern world
Powerful features as libraries
- Clojure can be extended easily by libraries and macros, explaining the rapid development of so many additional features
- simple asynchronous programming with core.logic (like the channels from go-lang)
- logic programming (like pascal) with core.logic
Simple to use tooling (Leiningen)
- the hardest thing about managinge projects is saying the word leiningen (he is the killer of giant ants)
- one tool to do everything
Robust server-side development
- core set of libraries - ring, compojure, hiccup|selma, for easy server-side web development
Creative arts
- quil, thi.ng
- overtone
Security
- leverages the host platforms years of efforts around security
- authentication & authorisation libraries
Design aspects (deeper stuff) Modeling complexity or reducing to simplicity Fractal complexity - use simple functions to model complext worlds