Still, in a nice language the programming effort vs speed curve should
not be too steep. Eg you can get 80% of the speed with 20% of the
effort, both compared to the absolute super fastest solution.
Julia is a nice language: with a few simple rules that one pick ups up
after a bit of experience (= mistakes) [1], it does not take a whole lot
of extra effort to write reasonably fast code. Getting within a factor
of 2-5 of C with significantly less effort is enough for a lot of
applications, especially considering that in scientific computing a lot
of code is only used a few times (analyze a problem, estimate a model,
etc). For the rest, one can optimize further.
The "two language problem" is really about a discontinuity in the effort
vs speed curve. You hit the limits of Language A, you have to go to
Language B, which is significantly different. In Julia you can make a
lot of incremental optimizations.
Best,
Tamas
[1]
http://docs.julialang.org/en/release-0.4/manual/performance-tips/