Julia
A high-level programming language geared towards scientific computing.
Should I learn Julia?
Arguments for Julia
Compared with Python, It’s much faster out of the box and can do real parallel computing that is not constrained by the Global Interpreter Lock. It supports many mathematical operations (e.g., vectors, matrices, etc.) out of the box and allows using symbols.
Compared with lower-level languages like C, C++, Rust, etc., it is still much easier to write and feels closer to Python. It is also much more strongly geared towards mathematical and scientific computation.
Compared with Mathematica or Matlab, it is an open-source language and a more general purpose language.
Compared with R, it is a more general purpose language and the language itself has (arguably) a much better design. It is generally much faster as well.
- First steps with Julia for numerical computing - Bogumił Kamiński: some cases for using Julia over other languages.
Arguments against Julia
It’s still a young language without a huge user base. There are not as many packages as other more popular languages.
Current verdict
Maybe start adopting it for the part of the projects where you need to implement algorithms by yourself rather than using other packages?
Where should I start?
- https://docs.julialang.org/en/v1/: official documentation
- Basic Julia tutorials from official YouTube channel
- MIT class: Introduction to Computational Thinking with Julia
- Videos featuring 3Blue1Brown, and LeiosOS.
Environments
Interactive notebooks
Julia provides a nice REPL, but can also be run with Jupyter as well as a reactive notebook called Pluto (similar to Observable notebook).
VSCode
Julia plugin offers a powerful development environment.
Libraries
Graphs/Networks
Visualization
- Gadfly