I think any language will be fast enough for you. When comparing Python and Java, it seems a little unreasonable to blame the language for speed differences. Java compiles JIT (except for mobile devices *), while Python is interpreted. Just because both options for using bytecode do not mean that implementations will even have remotely comparable performance. But both Scala and Clojure are JVM languages, so they should have similar performance.
Scala has several implementation advantages over Clojure, and I expect somewhat better performance. Although Scala's static typing typically translates into a speed advantage over the Clojure duck type, Clojure supports a hint type that can speed up code significantly. Perhaps the usual Scala is faster than the usual Clojure, but you only need to optimize the bottlenecks. Most of the program execution time is generated by a small amount of actual code.
As for interop w / Java, Scala is closer to Java, but I'm sure both languages interact well. In Clojure programming, Stuart Halloway writes: "[you can access] anything you could get from Java code."
And since Scala author Martin Odersky wrote the Sun Java compiler, I think that not a single ball was removed on the Scala side either. :-)
It would be difficult for you to choose the two best languages, although I also like Ruby. Why are you worried about which one to try? Why not try both of them? Scala is likely to be the “next Java,” while it's hard to imagine that Lisp will finally come out after not doing so for more than 50 years. But it is clear that Lisp is at its own unique level of abstraction, and Clojure is quite simple, so Scala + Clojure will not be much more complicated than just (quite complex) Scala and I'm sure you will be glad that you did it.
And in this respect they interact ...
* dalvik (android JVM) received the JIT compiler in version 2.2 in 2010
DigitalRoss 01 Oct '09 at 22:27 2009-10-01 22:27
source share