I was looking to brush up and/or pick up some languages for a hobby project on my free Amazon EC2, and I was going through the benchmark results for Java vs C (or Scala vs C)and Fortran vs C. It seems that the margin in Java vs C is nearly the same in Fortran vs C, which made me wonder if JVM (and its JIT optimizations) advances are catching up fast enough to occupy the same status as C & Fortran in High Performance (Scientific) Computing in the near future.
Factors, other than performance, to be taken into consideration could be:
- readability, maintainability and expressivity of codes
- cost of scalable hardware infrastructure
- Availability of libraries
- Parallel and/or Concurrent programming support
- Talent pool
edited question: Among all high performance computational fields, what are the fields that might see the rise of Java/Scala JVM ecosystem? For example, it seems to me that complex system analysis, economic/finance, machine learning etc might be a few of those fields. What else?
Edited on 24 Sept 2015: After I had posted this question, I came across this old (2007) blog post that re-did some of those same benchmarks-game for Java and C, but after excluding the initial warmup/optimization run (although, its effect is debated) for a few different Java compilers, and the results are quite surprising. Although, as the comments from Isaac Gouy at that blog say, running 4-5 trials for each benchmark may not be enough to average out processor usage by other processes running on that system. But still, an interesting blog. Since that 2007 blog, I believe JRockit and HotSpot compilers have been merged by Oracle, but not sure how their combined performance stacks against C compilers'.