3 ms·
Many people are rightfully recommending Rust and Go, so I'll weigh in under what circumstances you should learn Julia. If you regularly find yourself solving p
by Bromeo 4y ago
Many people are rightfully recommending Rust and Go, so I'll weigh in under what circumstances you should learn Julia.
If you regularly find yourself solving problems with Matlab, numpy/torch/pandas or R, you'll be delighted to learn Julia.
R and Matlab were great at the time, but really show their age. Python was never meant to be fast, so all the algorithms are in C/C++, making them very hard to inspect, modify or build upon. Julia excels at bridging the gap between high-performance numerical algorithms, great composability through it's type system, and a great syntax for vectorized programming, which makes it straightforward to inspect and change code for very complicated algorithms. For instance, check out Octavian.jl for a pure-julia (fast) alternative to BLAS - or try reading the DataFrames.jl source code (and compare it to the source code of pandas).
Note also that the mentioned applications go beyond data science into general machine learning (+deep learning), simulation science, optimal control, decision making under uncertainty, and many other fields leveraging custom numerical algorithms.
BUT, Julia is (imo) only worth learning if you need to write sophisticated numerical algorithms. If you're more of a systems level programmer, web dev, etc, you might not appreciate what sets Julia apart. Julia and Rust target somewhat different niches, with Rust being much more aimed at developing applications with many interacting components that may not fail. Go doesn't really target numerical programming at all and is instead great for multiple-instruction-single-data (MISD) applications (as opposed to SIMD applications like matrix multiplication).