> In our benchmarks, the Clojure version underperformed by about 9-13% when comparing peak throughput.<p>The performance difference between Clojure and the pure Java implementations was much smaller than I'd thought. Quite amazing for a dynamically typed language to get so close to Java in performance, to be honest.<p>The ring-clojure performance was much lower than the Java equivalent, but that's expected because de-serialization can be A LOT faster when you use static types for guiding parsing (e.g. cache the string keys and never allocate object keys, maybe small values that are common as well). I wonder if Clojure contracts could be used for the same tricks.
I wonder if they meant to write these "key takeaways" in context of performance, or generally? Taken on their own they don't sound too familiar vs why people usually decide to go with Clojure or not.<p>* "Clojure frees developers from the perils of writing concurrent programs, but at a price."<p>* "When concurrency is not a factor, consider using Java."