Thoughts on Julia

Recently, a new scientific computing language Julia has been released (or rather, received much attention). I attended a talk by one of its creators last week and I am less than impressed. Granted, it is still very much in its infancy, but it seems more like a programming language research project than a language created to solve problems, even though that's what it is being sold as. The talk largely focused on the interesting aspects of the language itself (in fairness, I don't see how else one would fill in an hour timeslot).

My primary problem with it is that it appears to be a variant of Matlab, while there are already lots of Matlab clones out there like Octave. The problem with Matlab is that it is such an unorganized language, with lots of annoyances that make actual programming extremely painful. For example, the random hodge-podge of short built-in functions in the global namespace, the 1-based indexing (yes, this is actually a hassle when you want to implement complicated algorithms), the lack of concrete typing.

There are a few positives. Its automatic parallelization is is neat, but its ability to scale up automatically remains to be seen. The fact that its entirely open source is also a huge plus.

The closest to an ideal language at the moment is Lua, except for its 1-based indexing. A more C-like syntax and array slices would be nice, too. Here is my ideal scientific computing language checklist:

Note that I don't require special matrix syntax, such as the single-quote transpose operator in Matlab, or the ungodly quantity of non-ASCII symbols in Mathematica. The language of mathematics will always be too rich and fluid for a programming language to keep up with, especially one that hopes to maintain support and compatibility. Until this holy-grail of a language comes around, I will stick to C and Lua.

permalink | discuss