Want a programming environment for your next research thesis? Want it to have simple syntax? Want speed of execution and inherent parallelism? Want to ground your mind to the hard reality of life as well? Julia is a breath of fresh air in the often muddled landscape of scientific computing.
They say charity begins at home, so much of julia is written in julia. Some of its defining characteristics are.
A JIT compiler
Lisp like macros and metaprogramming capabilities.
User defined types which are as fast as built in ones.
Great performance (reminds you of C).
Ability to make calls to C functions directly.
Julia is undergoing rapid development so dont be surprised if you have to pull its latest build from github. As of now the two prominent sub groups or development branches inside Julia are JuliaOpt: A set of libraries for numerically solving linear and nonlinear optimization problems andJuliaStats: a repository of libraries which enable statistical analysis/pattern recognition from data. There is extensive work going on to create libraries in julia for other applied mathematics areas as well, so keep visiting their site to find out about exciting new developments.
Julia has good visualization capabilities as well, interested people should go through the packages Winston and Gadfly and check out the cool ways to plot data. My personal favourite development from the Julia project is their joining forces with the IPython team to create IJulia, an interactive IPython notebook server powered at the back end by a julia kernel.
Check out this swanky iJulia notebook which generates a plot comparing the benchmark performance of various languages with respect to the gcc compiler. The comparisons are taken on a set of defined tasks. You can also find a summary of these results on the Julia project home page. Julia is distributed under the M.I.T License. So folks without further ado, install Julia bring out the explorer inside you!
Peace, Love and Open Source.