4 ms·
It's easier and faster because it's a more powerful language. You can achieve fortran/C speeds without leaving the language (for example Tullio.jl and LoopVecto
by ddragon 6y ago
It's easier and faster because it's a more powerful language. You can achieve fortran/C speeds without leaving the language (for example Tullio.jl and LoopVectorization.jl competing with super optimized BLAS methods). Multiple Dispatch means libraries can compose, for example Julia's main Machine Learning library doesn't even need to know anything about GPUs to run all of it's methods on it (said library is also only a few thousands of lines of high level Julia, and the CUDA library is also 100% Julia). Even the state of the art implementation of Tensorflow interface that couldn't work on Python (Swift for Tensorflow, a fork of the swift compiler) had a competitor implemented as pure Julia libraries (Zygote.jl, a source to source differentiation library) thanks to it's metaprogamming capabilities.
I did mention from scratch because of course, if your library requires another library that does not exist (and you don't want to use the FFI), it won't be faster or easier (though I did mention in the previous comment that it's something all new languages will have to go through, until it's not a problem anymore).