I think a good start for julia would be to include more workflow-oriented tutorials in the docs that also provide a path through the current mess of packages (220 at current count, with sometimes quite redundant functionality, e.g., Gadfly, Winston, pyplot, Gaston). Heck, maybe I should just help with it once I'm done with my current project.
My recommendation to other numeric Python devs is that if you don't have any investment in a specific numeric Python library think about moving your project to Julia, I suspect the ecosystem will bloom pretty rapidly and provide a much more future-proof set of tools for technical computing.
I remember the days when I tried to do command line automation in Matlab, or tried to read some XML from some internet resource.
This stuff is super simple in Python, but very hard in Matlab, because Matlab focuses so much on science and so little on general usefulness.
Python is not as integrated with regards to the scientific core functionality, but it doesn't limit you to it, either.
Matlab has come a long way though. Coming from a functional programming background, I was delighted to find that you can pass functions as arguments to some matrix operators and get some very terse map+reduce operations.
fname = "/tmp/myfile with spaces"
f = open(fname, "w")
run(`echo hi` |> f)
close(f)
pipe, process = readsfrom(`cat $fname`)
cmdoutput = readall(pipe)
println(cmdoutput)
I'd write all of my command line scripts in Julia, except the interpreter currently takes far too long to start. But people are working on that.But pure matrix math is a small part of my analyses and workflow. Most of the code is in data preprocessing from SQL servers, CSV files, JSON files, and various cleanups. Once you have your data in an array, MATLAB can be great, but writing general-purpose code (or even a while loop) was horrible.
In general, unlike many other technical computing languages, Julia does not expect programs to be written in a vectorized style for performance. http://docs.julialang.org/en/latest/manual/arrays/
In Fortan, MATLAB and Python, the opposite is true: vector notation is fastest.
Ggplot2 and friends are great, but theres plenty of room for even better tools in the data vis space.
My impression on two small bits of this article:
Python is also somewhat restrictive with what you can say on a single line. In Matlab you would often load some data, start editing the functions and build you data analysis step by step, while in Python you tend to have files which you start from the command line (or at least that’s how I tend to do it).
I actually find that this kind of analysis is more conveniently done in IPython (or IJulia) Notebook than in MATLAB.
I still have dreams of a plotting library where the type of visualization is decoupled from the data (such that you can say “plot this matrix as a scatter plot, or as an image”).
This is the design goal of both R's ggplot2 and Julia's Gadfly.jl.