There was an lively debate on LinkedIn with respect of using
Java for
Quantitative work.
As usual, some people were quick at pointing out Java's “slowness” compared to
C++.
Obviously, yours truly, tried to demystify that point.
Java is as fast and sometimes faster than C++. Do not believe me, try it out for yourself. Try Java 6, in server side mode with asynchronous garbage collection, the performance will be mind-blowing, or at least, if you were sceptical, will be unbelievable.
Try
java -server +XX:UseConcMarkSweepGC with a program, develop the same one in C++ and compare the performance between the two.
Make sure you read this
entry first.
My answer to Java for quants is not about the language but about the architecture and design.
It does make sense to write a quant lib in C/C++, why? Because of speed, no – because if speed is your concern, you'd go C/ASM or a hardware solution; because of ease of use with other systems: writing a .dll or .so allows your lib to be called from .NET, Java (via JNI), Excel, etc.
People are very sensitive about C++ vs. Java – what about trying it yourself and be objective?
Also, let's not talk about Java only, it is also and mainly about the VM, which supports many other languages, in particular
Scala,
OCAML,
Jruby, ...