This week's book giveaways are in the iOS and Features new in Java 8 forums. We're giving away four copies each of Barcodes with iOS: Bringing together the digital and physical worlds and Core Java for the Impatient and have the authors on-line! See this thread and this one for details.
There have also been a number of presentations over the last couple of years that are case studies from companies that have adopted Clojure. And of course it's worth noting that Twitter, LinkedIn and many other "brand names" use Clojure for some projects, even tho' they might not be talking about it much in public (Twitter bought Backtype who created Cascalog and, since becoming part of Twitter, have created Storm - both of which are impressive Clojure projects for manipulating "big data").
1. What's Clojure good at comparing with other languages?
2. How about the Clojure language in industry? Are there any companies use Clojure in their projects?
Clojure is a general purpose language. It's very good at everything. Based on my observations, it seems to be used for web applications, long running services, analysis tasks and tools, which is pretty much everything you'd be likely to code these days. That's not to say it's not used effectively for other things - I'm just mentally organizing what I see it commonly used for now.
I am working for a company that uses Clojure. We have a web application in Clojure and Clojurescript, and our analysis engine is in Clojure using core.logic. What I personally really love about this choice is because of the flexibility and expressiveness of Clojure (especially with core.logic) we can pack a lot of power in very little code. We can get by with a smaller team and we effect changes in the system much more quickly than I've experienced with other similarly sized projects.
I also really love how easy it is to write Clojure. Nobody was more skeptical of lisp-syntax than me, but structured editing (paredit) along with a connected live REPL is insanely powerful. I find it more productive than both Java with it's powerful IDEs and languages like Ruby and Python with their already rapid and flexible development models.
Like Norman, I work for a company that uses Clojure primarily as a general purpose language, as part of a large web application (an Internet dating platform). We use Clojure to interact with MySQL, MongoDB, various third party web services (both REST and SOAP, both JSON and XML). We generate HTML emails, we process large log files, we do pretty much everything with Clojure that we might otherwise do with Java - but with a fraction of the lines of code that Java would force us to write. We love immutability because we don't have to worry about thread safety, locking strategies and synchronization. We have access to easy concurrency when we need it - because of immutability and the concurrency primitives in Clojure itself. Immutability also makes it easier to reason about our code and to reuse small, isolated functions in more situations.
So I'd say that it isn't so much that Clojure itself is better than other languages at several of these things but that the core concepts behind Clojure make solving these problems easier. The concepts lead to simple, powerful code, based on a consistent set of strong abstractions.