Home > Computers > The Julia Language

## The Julia Language

I played a bit this spring with Julia (the software, not the girl next door ;-). For Debian : apt-get install julia julia-doc. This was the source of great enthusiasm! Julia is a promising software for scientific computing. Yet another interpreter around Lapack? Yes and no. Some people believe that Julia is a revolution in scientific computing. For most of my daily needs, Julia is already almost preferable to Matlab/Octave/Scilab/R/C++/Python/… due to multiple bleeding edge technical features, including a high performance just-in-time compiler. Julia is flexible like Matlab, is fast like C, is free software like Octave/Scilab/R (MIT license), is text friendly like Python, and much more. Julia is also good for its competitors: it will help them to evolve. The reading of «Why we created Julia» by the creators of Julia is informative. An impressive summary of Julia features is given on julialang.org, which provides many resources, including videos featuring the great Alan Edelman (MIT group leader, co-creator of Julia).

Learning Julia is a pretty easy task. Here is one of my first Julia program:

Pkg.add("Winston") # Pkg.add("Winston") is needed once for all.
using Winston # for simple graphics à la Matlab
n = 1000;
(D,U) = eig((randn(n,n)+im*randn(n,n))/sqrt(2*n));
I = [-1:.01:1]; J = sqrt(1-I.^2);
hold(true)
plot(real(D),imag(D),"b.",I,J,"r--",I,-J,"r--")
title(@sprintf("Complex Ginibre Ensemble %dx%d",n,n))
file("circ.png")


(this is one of my standard tests: Ginibre ensemble!) which produces the following image: Julia is still young – born in 2012, version 0.2 – and needs time to gain maturity, notably for plotting support among other things. One can regret the lack of a graphical user interface, but one can use Emacs+ESS, or the wonderful IPython notebooks in web browser via the Julia package IJulia. For Debian: apt-get install ess ipython-notebook. Give it a try!

Categories: Computers
1. April 19th, 2014 at 00:16 | #1

En quoi Julia est-il “préférable à Matlab/Octave/Scilab/R/C++/Python/…” ?
A plus,
flo

2. April 19th, 2014 at 00:22 | #2

Among multiple bleeding edge features, for his high performance Just-In-Time compiler: see julialang.org for more information.

3. September 1st, 2014 at 03:48 | #3

There is an IDE called Julia Studio.

4. September 18th, 2014 at 08:34 | #4

Just In Time (JIT) compilation is now everywhere. Recent versions of GNU Octave come with a JIT, and even Python/Numpy has a JIT called Numba.