I just discovered "Julia" thanks to this article. It looks like a wonderfully thought out programming language. Unfortunately, I am having trouble installing the language on my dated OS. Apparently, I need Ubuntu 13 to run it!
Can anyone comment on the difficulty of porting Matlab code to Julia? It appears extremely straightforward, but I'm guessing that many toolbox functions aren't implemented in Julia yet?
In academia, there's tremendous momentum behind Matlab, but Julia would solve many problems with licensing, building more complex systems, etc.
There's a growing number of packages written in Julia (http://docs.julialang.org/en/latest/packages/packagelist/) and using the PyCall package you can call any python package if you're missing functionality. Do have a look to see if what you need is implemented. Other than that porting existing MATLAB code is extremely easy since the syntax is similar in many cases.
One thing that is holding me back from porting my Matlab code to Julia is manual loop-unrolling. "It seems that, when using Julia, one needs to unlearn everything you’ve ever learned about vectorisation in MATLAB." [1]. Once the speed with Matlab-like syntax improves, I'll try again.
Sufficiently developed? No way. Is it getting there? Yes I think. There are no plotting facilities part of the standard library, but external packages like Winston [1] are available -- but the syntax was verbose for my taste, so I let it pass.
According to this SO question[2], there was some web-REPL plotting earlier but it is unmaintained now.
Perhaps, though he states "In this area, it’s unfortunately hard to dispute that general-purpose scripting languages like Perl, Ruby, and Python, have much better language and library support in this area than any of the data-specific languages."
It's also highly likely that most analysts reading this article know lots about Python (and Ruby), some about R, and little to nothing about Matlab, Octave, or Julia, unless they have an engineering background. (Yes, some analysts do have backgrounds other than CS/Eng/Physics!)
So, I don't think it's glazing as much as it's trying to focus on the new and not the "yet again, someone telling me how to use Python for data, when I want to know if there's something even better...".
I also have the impression that the research that went in this article is a quite light. R, ML, Python serve different purposes. Julia is cool but brand new and feel kind of out of place compared to the heavy weight that are the other three. The point the author makes about ML and R being black boxes is misleading. At least, R is open source and you can always look at the gut of the software, nothing is more easy.
Nice to know there's a JVM-based library (http://acs.lbl.gov/software/colt/). I remember in HN somebody mentioned something like this but for Scala, anyone?
The only reason I can see to use Matlab is that you have invested heavily in it in the past. If not, I'd always use python instead. I claim it's not less "tuned for numerics" (with numpy) than Matlab. If you really need a Matlab like IDE, you should either give Spyder² [1] (I don't use it myself, but I know some Matlab-switchers that are quite happy with it) or IPython notebook a try.
In my oppinion, the only thing Matlab has going for it are commercial extensions and (often exclusive) hardware support (and I don't mean computers).
20 comments
[ 10.1 ms ] story [ 142 ms ] threadIn academia, there's tremendous momentum behind Matlab, but Julia would solve many problems with licensing, building more complex systems, etc.
Disclaimer: I'm one of the core devs.
[1]: http://www.walkingrandomly.com/?cat=59
The @devec macro should help, meanwhile:
... will devectorize the expression. It's not perfect, but it's definitely useful.https://github.com/lindahua/Devectorize.jl
According to this SO question[2], there was some web-REPL plotting earlier but it is unmaintained now.
[1] https://github.com/nolta/Winston.jl
[2] http://stackoverflow.com/questions/14970817/plot-not-defined...
https://github.com/dcjones/Gadfly.jl
https://github.com/mbaz/Gaston.jl
Docs: https://bitbucket.org/mbaz/gaston/downloads/gastondoc-0.5.5....
It's also highly likely that most analysts reading this article know lots about Python (and Ruby), some about R, and little to nothing about Matlab, Octave, or Julia, unless they have an engineering background. (Yes, some analysts do have backgrounds other than CS/Eng/Physics!)
So, I don't think it's glazing as much as it's trying to focus on the new and not the "yet again, someone telling me how to use Python for data, when I want to know if there's something even better...".
https://github.com/scalanlp/breeze
In my oppinion, the only thing Matlab has going for it are commercial extensions and (often exclusive) hardware support (and I don't mean computers).
[1] http://code.google.com/p/spyderlib/