Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Forums / Software Forum / Julia, a new, fast, high-level computing language

Julia, a new, fast, high-level computing language

Up to Software Forum

Julia, a new, fast, high-level computing language

Posted by Feigelson, Eric at October 27. 2013

A new language called Julia is attracting attention.  Blogger Randy Zwitch recently wrote:

Over the past month or so, I’ve been playing with a new scientific programming language called ‘Julia‘, which aims to be a high-level language with performance approaching that of C. With that goal in mind, Julia could be a replacement for the ‘multi-language’ problem of needing to move between R, Python, MATLAB, C, Fortran, Scala, etc. within a single scientific programming project. ... One thing that’s important to note about Julia at this stage is that it’s very early. If you’re going to be messing around with Julia, there’s going to be a lot of alone-time experimenting and reading the Julia documentation. There are also several other resources including a Julia-Users Google groupJulia for R programmers, individual discussions on GitHub in the ‘Issues’ section of each Julia package, and a few tutorials floating around (here and here).

University of Wisconsin statistician Douglas Bates, one of the founders of R, has an interesting, and quite positive, analysis of Julia here.  He concludes that Julia has the speed of a compiled language in a dynamic, REPL-based language. (They said it couldn’t be done.) Core developers are extremely knowledgable (and young). Syntax “not unlike” R and/or Matlab. Many functions have the same names.  Generic functions, multiple dispatch and parallelization built into the base language.

The Julia home page says:

It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia’s built-in package manager at a rapid pace. IJulia, a collaboration between the IPython and Julia communities, provides a powerful browser-based graphical notebook interface to Julia. ... It provides a number of key building blocks for distributed computation, making it flexible enough to support a number of styles of parallelism. ... [It] is licensed under the MIT license. ... [It] can be built as a shared library, so users can combine Julia with their own C/Fortran code or proprietary third-party libraries. Furthermore, Julia makes it simple to call external functions in C and Fortran shared libraries, without writing any wrapper code or even recompiling existing code.

In a benchmark test, Julia outperformed every high-level language (R, Python, Matlab, Octave) by large factors, JavaScript by small factors, and was comparable in speed to Fortran and C.  The Cosmology calculator for Julia gives, for a selected LambdaCDM model, quantities such as the age of the universe at redshift z and bolometric luminosity distance in Mpc.  Julia is a young system and rapidly changing.

Powered by Ploneboard