"Hard-core" computing is almost all C/C++/Fortran (and of course CUDA for GPU's etc.). Python and R are fairly popular, but in those cases (hopefully) most of the heavy lifting is done by library code (again, C/C++/Fortran, or increasingly CUDA via ML libraries such as tensorflow) rather than the interpreter. Julia is very promising in this space, as it offers a solution to the "two-language" problem. I'm hopeful for Julia to make more of an impact, but it's of course a slow process.
(There is a (tiny) bit of ASM, but that's more or less exclusively done for widely used performance-critical libraries like BLAS, or FFT, not for application code.)
I don't see the plus value in Julia compared to Python or Java. It will still be slower than C/C++, probably less portable, and all the legacy libraries have to be rewritten in Julia.
If Julia is only a new syntax, to me Python is already very simple. If Julia is a JIT compiler, why not participate to already available compilers?
Julia is still there, so I guess it adds value, but I don't know where to place that effort in the grand scheme of things.
[1] https://thewinnower.com/papers/9323-i-like-julia-because-it-...
Well, no GIL for a start, which is a pretty strong selling point when running on several dozen of cores at once.
> I don't see the plus value in Julia compared to Python or Java
I don't see how you can put Python and Java in the same bag.
> It will still be slower than C/C++
Not that much https://news.ycombinator.com/item?id=17204750
> probably less portable
Who cares? 99.99% of HPC are Linux clusters anyway. And Julia runs on macOS and Linux, that cover the overwhelming majority of the concerned users.
> and all the legacy libraries have to be rewritten in Julia.
https://docs.julialang.org/en/v0.6.0/manual/calling-c-and-fo...
> I don't know where to place that effort in the grand scheme of things.
According to you interrogations, browsing their website would be a good start.
> I don't see how you can put Python and Java in the same bag.
What I meant is that the trio Python/Java/C is ubiquitous for many people in both entreprises and scientific fields, from embedded to web servers. It allows for great reusability of codes and people's skills.
> Who cares? 99.99% of HPC are Linux clusters anyway. And Julia runs on macOS and Linux, that cover the overwhelming majority of the concerned users.
But will Julia be able to output the necessary instructions for the future hardware accelerators, which could be totally different architectures? I'm thinking of all the new neural networks cores, the DSP, fpgas, and heterogeneous computing from different rival vendors. It seems Julia is deeply dependant of LLVM.
> and all the legacy libraries have to be rewritten in Julia.
> https://docs.julialang.org/en/v0.6.0/manual/calling-c-and-fo....
If you have to reuse C and Fortran libraries, why not just use Python which can do the same, or even Lua, or Lisp. Python is already the defacto language to glue libraries together onto a higher level algorithm.
Yes. Watch HN in the next week or two for an announcement that may interest you ;).
That's true. But it's also Academia's role to try (and fail or succeed) at developing and evaluating new solutions; and in the case of Julia, I have to concede I'm pretty excited to see where they will be going. The solution of mixing the ‶glue″ and the ‶high performances″ languages in a single one while still letting people call upon older C ABI libs is a little revolution in this context.
> If you have to reuse C and Fortran libraries, why not just use Python which can do the same, or even Lua, or Lisp. Python is already the defacto language to glue libraries together onto a higher level algorithm.
Because Julia is far faster, and because no GIL.
Of course, like in every other tech, what floats my boat doesn't necessarily floats your, so maybe for your usecase Python/Lisp/Lua/Ruby/... is better.