What is Clojure useful for? [closed]

Solution 1:

I've used Clojure for:

  1. Scraping web pages
  2. Shell scripts
  3. Building websites
  4. Playing around with OpenGL
  5. Writing async webservers
  6. HTML Templating
  7. Running parallel tasks (fetching multiple URLs and process in parallel)
  8. Playing around with real time audio
  9. Simulations

That's the practical / fun stuff.

But Clojure has plenty of theoretical depth as well. Ideas that will become increasingly more relevant as the mainstream comes to really understand the potential of Functional Programming.

A personal opinion, but Clojure flat out provides better language constructs for organizing software correctly (without causing undue pain for the working programmer) of all the languages I've used thus far academically and professionally - C, C++, Objective-C, Java, JavaScript, Python, Ruby.

Which isn't to say Clojure is perfect. But it seems to me that it's built on a better foundation than most of what's out there.

Solution 2:

Maybe start with Rich Hickey's rationale.

As for real-world apps, how about this roll call of production use from the google group?

Solution 3:

Clojure is being used extensively for processing large volumes of data. It is very well suited to data mining/commercial-AI (ie: Runa) and large scale predictions (aka WeatherBill). Clojure's concurrency story really helps in these data heavy domains where parallel processing is simply the only answer.