Last years UseR 2012 conference in Nashville had an interesting discussion session titled “What other languages should R users know about?“. General consensus was that multilingualism is inevitable in modern computing, and panel members presented various languages that complement R in different ways. Some of the usual suspects included SQL, python, and of course C++, of which one panel member with unpronounceable German name seemed to be particularly fond. But perhaps most surprising was R-Core member Douglas Bates pushing for a new language called Julia, which is actually more of a competitor than companion to the R language. Confronting an audience of 500+ emotionally and physically (over) invested useR’s that our beloved baby is perhaps up for replacement demonstrates great courage, and could easily have turned the discussion in an episode of Jerry Springer (but it didn’t). So what is this Julia all about?
If you are willing to find out, I highly recommend watching these recordings from a two day Julia tutorial at MIT in January 2013, published recently through the fantastic MIT OCW. They introduce Julia, but also talk more general on the problems that scientific computation is trying to solve and how programming techniques and languages are evolving in this area. In one video Bates compares specifically Julia to R, explaining some of the major improvements. Some spoilers:
- Julia interpreted code is fast. So fast that there is usually no need for C++.
- Julia uses reference by memory, like any other modern language. Resulting in more speed.
- Julia has great native support for parallel computing, i.e. even more speed.
- The package repositories are managed entirely through github. Although I am not convinced yet it fully solves R’s problems with dependency versioning at this point.
- P-values are back, with three stars and everything
All in all, Julia seems like a very promising project, but it needs a lot more work. The question at this point is probably not if Julia is better than R, but if the difference is large enough to attract the critical mass of developers needed to reimplement all of our beloved statistical methods and find wide adoption among current users of R. Time will tell.