From my point of view (lots of low-level, embedded, real-time,DSP,C,C++, etc). I personally get appalled at the performance that is left on the table when using idiomatic Clojure (and even Java)
Okay, but that's a very different statement than your initial post where you wrote "the reality seems to be of a really under performing language." The value proposition for Clojure includes well thought-out high level abstractions, great built-in immutable data structures, interoperability with Java and JavaScript, all the stuff that comes with being homoiconic, and more. The value proposition for Clojure does not include programming for embedded systems, building low-level systems software, or wringing out every last bit of performance from your hardware. "Inherent bad performance," as you put it previously, is relative to the problem space you are working in.
its not a different statement, Clojure is (partially) sold as a performant language, partially thru its links to Java, partially because of 'scaling' I suppose. What I'm saying is that it isn't truly performant.
Like you say, the strong points of Clojure are the homoiconicity, immutability, STM etc. It seems to me that as soon as you attempt to use the good bits of Clojure, performance goes out of the window, which is a real shame.
BTW: I wasn't indicating I thought Clojure was intended for embedded s/w, just indicating that I have an interest in true performance, not just scalability due to my background in embedded s/w.
Don't get me wrong, I like Clojure and it has its place, but its just a shame that in order to use its strengths, you pay a big price.
Okay, but that's a very different statement than your initial post where you wrote "the reality seems to be of a really under performing language." The value proposition for Clojure includes well thought-out high level abstractions, great built-in immutable data structures, interoperability with Java and JavaScript, all the stuff that comes with being homoiconic, and more. The value proposition for Clojure does not include programming for embedded systems, building low-level systems software, or wringing out every last bit of performance from your hardware. "Inherent bad performance," as you put it previously, is relative to the problem space you are working in.