To Clojure-curious people: please ignore this article. It is misinformed.<p>Others on this thread have pointed out that the Alioth benchmark takes startup time into account. Yes, this imposes a startup penalty on Clojure.<p>More importantly, the implementations of each individual benchmark vary significantly in performance quality. High-performance Clojure requires a couple of tricks in type hinting, using unchecked arithmetic, and preferring native Java arrays.<p>I looked at a couple of the benchmarks, and the mandelbrot example uses those tricks. Notice the performance there: <a href="http://shootout.alioth.debian.org/u64/performance.php?test=mandelbrot" rel="nofollow">http://shootout.alioth.debian.org/u64/performance.php?test=m...</a><p>Notice that Java 7 and gcc run at about the same speed, and Clojure is only about 2.2x slower (than C). Scala is about 1.9x slower (than C). gcc is about 1.5x slower than Intel Fortran.<p>To make the benchmark more fair: (1) all timings should disregard startup time; and (2) all JVM languages should have the opportunity to run the benchmark a few thousand times before timing it. Otherwise, it measures JVM startup time, and then it measures how long it takes the JIT to achieve maximum optimization. By comparison, the C and Fortran code runs at full speed almost out of the gate.<p>All-in-all, considering that Clojure is an extremely high-level language I consider its performance impressive [1]. Yes, the inner loops need to be coded in a slightly un-idiomatic manner, but you can do all this in the comfort of your REPL, which makes the process of making optimizations reasonably painless.<p>[1] Don't forget to scroll down the mandelbrot results and look at the stellar performance of other popular high-level languages.