Julia: a new language for technical computing
Julia is a new open-source language for high-performance technical computing, created by Jeff Bezanson, Stefan Karpinski, Viral Shah and Alan Edelman and first announced in February. Their motivation for creating a new language was, they say, "greed":
We are power Matlab users. Some of us are Lisp hackers. Some are Pythonistas, others Rubyists, still others Perl hackers. There are those of us who used Mathematica before we could grow facial hair. There are those who still can’t grow facial hair. We’ve generated more R plots than any sane person should. C is our desert island programming language.
We love all of these languages; they are wonderful and powerful. For the work we do — scientific computing, machine learning, data mining, large-scale linear algebra, distributed and parallel computing — each one is perfect for some aspects of the work and terrible for others. Each one is a trade-off.
We are greedy: we want more.
The goal is to build a language that combines the best qualities of all the languages above, while still providing the best performance possible. It's an exciting goal, and with the recent advances in high-performance computing software and hardware, I think it's acheivable. As of now, though, Julia is still in the early stages of development, so it's quite a ways off from being ready used to build applications. (You can see from this comparison of R and Julia vocabularies that there are still some gaps to be filled in the core language, not to mention a CRAN-like repository of add-on packages.)
Doug Bates (a member of the R core group) has been taking a close look at Julia, and has published a detailed review of Julia from an R programmer's perspective, and has also contributed some of Julia's statistical capabilities. With some of the best minds in mathematical and statistical computing working on it, I'm excited to see where the Julia project will lead.
Julia project: The Julia Language