Julia is a new languange for technical computing. It is a mix of R, Matlab, Python and other similar languages. Its main advantage is its speed: it is just in time (JIT) compiled and almost as fast as C. Another advantage is its type inference, i.e. you do not have to specify types (although you can), but all variables are statically typed. It is a high level language that is fast as well. Here I compare the behavior to similar languages like Octave (Matlab) and Python (with NumPy).
Julia | Octave | Python (NumPy) |
---|---|---|
Storage Order | ||
Column-major | Column-major | Row-major |
Indexing | ||
1 based | 1 based | 0 based |
Julia's storage order is column major, numpy's storage order row major, i.e. A[:, 1] is faster in Julia and A[0, :] is faster in numpy because these vectors are contiguous chunks in memory.
Julia's arrays start with index 1, loops over the range 1:N go over [1, N]. Pythons arrays start with index 0 and loops over range(N) go over [0, N-1].