Julia: A jit compiled language that aims for high performance scientific computation.
It makes ambitious claims about being the fastest and best thing ever. The community process is problematic, however, and I prefer the proven method of using python and optimizing the performance sensitive code with one of the many tools to do that.
That said, the idea of a science-users-first JIT language is timely, and Julia is that. Python does have clunky legacy issues in the numeric code. Matlab is expensive and nasty for non-numerics. Lua has some good science libraries and could likely have filled this niche but for AFAICT sociological reasons has not acquired the hipness or critical mass of Julia.
And there are some things specific to Julia which are serious selling points, aside from the language-feature one-upmanship. For example, Laplacians.jl by Dan Spielman and co-workers is an advanced matrix factorisation toolkit. Julia also has tidy-looking autodiff, in the form of juliadiff. However, its deep learning toolkits are, for the moment, notably unimpressive.
The aspirational ggplot clone is gadfly.
Dataframes are called, unsurprisingly, dataframes.jl, and are part of the juliastats organisation
In order of increasing depth
Julia by example is all you need to go, if you have other programming langauge experience.
Bogumił Kamiński, The Julia Express
Chris Rackauckas notes for UCI Data Science Initiative. Noteable quote:
A Mental Model for Julia: Talking to a Scientist
- When you’re talking, everything looks general. However, you really mean very specific details determined by context.
- You can quickly dig deep into a subject, assuming many rules, theories, and terminology.
- Nothing is hidden: if you ever want to hear about every little detail, you can ask.
- They will get mad (and throw errors at you) if you begin to be loose with the specific details.
see also his 7 Julia gotchas
Official documentation is totally fine, but arse-backwards as these official docs tend to be.
A better UI
The default experience is crappy on a Mac, since it doesn’t install itself on the path, but also runs in a terminal. Foolishness. Put it on your path.
ENV["JUPYTER"] = "/usr/local/bin/jupyter" Pkg.add("IJulia")
Now IJulia appears as a normal kernel in your jupter setup.