3 ms·
I would also say, for those not familiar with Julia, that the main advantage of Julia vs Python or R is that you can write performant code in Julia that will be
by nextos 6y ago
I would also say, for those not familiar with Julia, that the main advantage of Julia vs Python or R is that you can write performant code in Julia that will be fast enough for most scenarios.
For example, there are efforts to write a pure BLAS in Julia that is still performant [1]. If you are into numerical computing, you will quickly understand this is crazy cool.
A consequence of that is composability. Most libraries are pure Julia, small, and play nicely with each other.
[1] https://discourse.julialang.org/t/11634 https://discourse.julialang.org/t/11634
- mlthoughts2018 6y agoThis is also very easy to achieve in Python by using Cython to selectively optimize code. That way for the 99% of code where such optimizations are meaningless and their requirement for static typing is a liability, you can ignore them, and only focus on the 1% of use cases where it matters.
- Rotareti 6y ago> This is also very easy to achieve in Python by using Cython to selectively optimize code There is also mypyc [0] coming up on the horizon. https://github.com/python/mypy/tree/master/mypyc https://github.com/python/mypy/tree/master/mypyc
- jakobnissen 6y ago... but Cython is not Python, is it? The argument that "Python can do it, you just have to use something other than Python) is very weird to me. I began looking into Julia because I was forced into Cython during a project and I loathed having to add a separate, statically compiled section of my code that did not integrate well with the rest of Python (e.g. no stack traces through Cython), and kept breaking (because of some linker issues in Conda)
- mlthoughts2018 6y agoCython is a superset of Python. If it’s valid Python, it’s valid Cython. Cython supports the full range of Exceptions and Python stack traces, and you can annotate on a per-function basis whether you want this in Cython. Managing Cython implementations as separate extension modules is a feature, not a bug - it separates concerns and allows only spending any effort on type system constructs in the small amount of cases where those optimizations will help you. Cython is extremely easy to compile and standard Python packaging tools work easily with it out of the box, conda included.