“Looks like Python, feels like Lisp, runs like Fortran.”
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.
- A simple example of modeling dynamical systems
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.
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
- How to learn Julia, a new programming language - this video shows how an experienced programmer approach the task of learning a new language.
Julia provides a nice REPL, but can also be run with Jupyter as well as a reactive notebook called Pluto (similar to Observable notebook).
Julia plugin offers a powerful development environment.