When to use Clojure
Clojure is a general purpose language, so you can use it for any kind of application.
Areas where Clojure really excels include:
- dealing with data
- most applications take data, do something with it and return it. The persistent data structures and vast number of data processing functions in Clojure make most of this trivial.
- high scalability
- as Clojure code is encouraged to be immutable and functions to be pure, you can run millions of parallel instances of your application or service for massive processing power. These features also vastly simplify concurrent programming.
- reducing complexity
- breaking down problems into components / microservices
- Clojure and its libraries are all great examples of well designed components and the community strongly encourages this approach.
So Clojure is great for webapps, data science, big data, finance industry (banking, trading, insurance, etc), devops tools (log analysis, etc) and anything else really.
You can also use ClojureScript for Functional Reactive programming ofclient-side apps for browsers and mobile device.