4 ms·
I'm scared of network effects for Julia, personally. Python is garnering tremendous amount of users. But then, I remember a computer vision teacher 3 years ago
by mbaha 9y ago
I'm scared of network effects for Julia, personally.
Python is garnering tremendous amount of users.
But then, I remember a computer vision teacher 3 years ago laughing at the idea of using Python instead of Matlab as Matlab is the "obvious industry standard".
- wallnuss 9y agoYou are right that the current adoption rate of Python makes it seem like Julia is in a losing position, but on the other hand it took Python a long time to get in to the position it is right now and systemic changes take time. The two arguments that speak for Julia from a user perspective (there exist much stronger arguments for package developers). a; Low overhead interoperability with Python, R, C and Fortran (and C++); You don't need to rewrite your code and you can start using Julia and slowly transition. b; User code as fast as package/base library code. You are not stuck with what already exists.
- catawbasam 9y agoThere are also some niches where Julia already has a strong position compared to Python (which I use and like), e.g. optimization and differential equations. I think these are areas where the 2-language model makes Python quite a bit less productive than Julia.
- throwaway7645 9y agoJulia Opt is good, but Pyomo or PULP with python are basically the same thing and Pyomo is from Sandia labs.
- marmaduke 9y agoWhat do you not get with Numba that you'd want?
- chappi42 9y agoYour question has been asked here [1]. I never used Numba myself but assume from the discussion that it is difficult/impossible to bring user objects into Numba and that due to the extremely rich Python object model one can only make Python fast for a small subset of the language. Example: in Julia I can easily define my own primitive type, let's say a ModInteger (an old video is here [2]) and it will be as fast as a normal "built in" integer in a for loop (and benefit from possible speedups: simd, parallelization, cuda, GPU - but don't have (much) experience in this area). Likely such a ModInteger couldn't be as easily integrated in Numba? [1]: https://discourse.julialang.org/t/julia-motivation-why-werent-numpy-scipy-numba-good-enough/2236 https://discourse.julialang.org/t/julia-motivation-why-weren... [2]: (2013) https://www.youtube.com/watch?v=rUczbQ6ZPd8 https://www.youtube.com/watch?v=rUczbQ6ZPd8 (at ~37:00 mins)
- marmaduke 9y agoYep I was expecting you might mention user defined types. Numba supports them but with an object model which is more sympathetic to acceleration. The other place where Julia might see better speed is when you have an optimization algorithm and the objective function both written in Julia, which allows for optimization across functions, whereas in Python you could write a fast objective function with Numba but couldn't optimize across function call with the optimizer written in Fortran.
- rmbeard 9y agoPython has pretty good optimization support as well as handling differential equations quite well. The latter also have very good support in R. Python also handles symbolic computation pretty well and in the freeware space dominates anything else in that respect. Julia is interesting but still has a ways to go for overall flexibility.
- marmaduke 9y agoNumba and Loopy cover all the possible use cases for accelerated loop oriented code you could possibly want in Julia.
- caxistic 9y agoAs someone who's watched the rise of R and Python from its beginnings, who pulled my hair out in frustration over the longevity of MATLAB long ago, and who has tried just about every numerical programming language it seems, I think the threat to Julia probably comes more from other LLVM-based languages like Nim or Crystal, or things like Rust or Kotlin. Julia's adoption rate is really impressive compared to R or things like numpy, etc. so I'm not worried about that. But I do think it will have to contend with a number of competitors in the same space.