Using Java In Low Latency Environments
twofishy writes "Something I've noticed amongst financial service companies in London is a growing use of Java in preference to C/C++ for exchange systems, High Frequency Trading and over low-latency work. InfoQ has a good written panel discussion with Peter Lawrey, Martin Thompson, Todd L. Montgomery and Andy Piper. From the article: 'Often the faster an algorithm can be put into the market, the more advantage it has. Many algorithms have a shelf life and quicker time to market is key in taking advantage of that. With the community around Java and the options available, it can definitely be a competitive advantage, as opposed to C or C++ where the options may not be as broad for the use case. Sometimes, though, pure low latency can rule out other concerns. I think currently, the difference in performance between Java and C++ is so close that it's not a black and white decision based solely on speed. Improvements in GC techniques, JIT optimizations, and managed runtimes have made traditional Java weaknesses with respect to performance into some very compelling strengths that are not easy to ignore.'"
Care to name even 3 projects like this? Because having done over a decade of release work across numerous platforms and languages, I've yet to see a single large project that even comes close to approaching this benchmark. The fastest "big project" - and capable of high levels of parallelization across several servers, since it was comprised of many independent api libraries - took about 45 minutes on a brand new (at the time server). Most of the multi-million line projects I've seen take upwards of an hour, many more than 2 or 3 hours, to perform a full build.
And if you meant "I can compile my 2 changed files and link them together so I can unit test," in a minute or two, then congratulations, you can write a makefile. But that binary in your workspace better not be going to production, son.