Это пример так себе. lm() содержит в основном сишный код.
Если точнее, то в основном вызов фортановских утилит через Си. Не в этом дело. В Jave , как мне показалось, играет значение размер проекта - большой, значит все будет хорошо, а если нет, то КПД будет низким. В этом плане КПД у Julia, опять же на мой не профессиональный взгляд, существенно выше. Но уметь писать на Jave/C# надо - в плане обучения Java хорошо структурирует.