You may never have come across Julia, a dynamic language for technical computing that is especially good at running MATLAB and R-style programs, but the availability of an IDE makes it a worthier of consideration.
The release of Julia Studio 0.4.4, Forio's free open-source integrated development environment for Julia has been announced. It is bundled with Julia 0.2, the latest release of the language, and can also be downloaded direct from Forio, a company that creates software products that enable simulations, data explorations, and predictive analytics.
In addition to an editor and integrated console, Julia Studio includes built-in support for version control with git and makes it easy to create data visualizations using standard Julia packages.
Julia is an open source language and was first publicized in 2012 although development began on it in 2009 by MIT professor of Computer Science Alan Edelman with Jeff Bezanson, Stefan Karpinski, Viral B. Shah.
In a blog post Why We Created Julia this team wrote:
We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
According to Forio, which promotes Julia and has produced the IDE:
Julia marries the performance of low-level languages like C/C++ with a simple and easy-to-understand syntax. You get all kinds of goodies. Julia integrates best-of-breed C and Fortran libraries for statistics, linear algebra, signal processing, and random number generation. It's also designed out of the box for parallel computing, meaning it's easy to scale computation across multiple processors in the cloud.
Speed is a key feature of Julia. With its Just-In-Time compiler it matches or beats C in benchmarks and vastly outperforms its peers, Python, R, MATLAB and Octave, as indicated in this table extracted from a more extensive one the Julia website:
The times reported are relative to C, with performance 1.0 on each, so a smaller value is better.
To provide an example of what Julia looks like, this is the code used in the Mandelbrot and random matrix statistics benchmarks:
This code should feel familiar to anyone who has programmed in other mathematical languages.By design, Julia allows you to range from tight low-level loops, up to a high-level programming style, while sacrificing some performance, but gaining the ability to express complex algorithms easily.
According to its own write-up:
This continuous spectrum of programming levels is a hallmark of the Julia approach to programming and is very much an intentional feature of the language.
Hopefully the availability of an IDE will promote the uptake of Julia. Forio also has a set of Tutorials at beginner, intermediate and advanced levels.