
Julia for Matlab users - luu
http://sveme.org/julia-for-matlab-users-i.html
======
DennisP
I've been trying out Julia for a couple weeks. I love the language, it's
simple, powerful, and fast. My problem is that I've run into a lot of cases
where I have an error, but no indication of where the error is. Sometimes it's
a syntax error somewhere in the file, other times it's a stack trace that
gives me my top-level function call and a line somewhere in the standard
library, but nothing in between.

So I'm finding I can write the code very quickly, but if I get an error like
this I lose all the time I gained and more. I'm sure this is a matter of it
being such a young language, and also that someone more experienced would
avoid many of the pitfalls catching me. But for noobs like me it's difficult.
I hope they improve this soon.

~~~
StefanKarpinski
Which version of Julia are you using and on what platform? Windows backtraces
are pretty bad, but other platforms decent. The situation on Windows is likely
to improve soon, fortunately. If you have specific problems that are
reproducible, it would be great to have bug reports so we can improve things:
[https://github.com/JuliaLang/julia/issues](https://github.com/JuliaLang/julia/issues).

~~~
DennisP
Version 0.2.0 on Ubuntu.

I should have kept better notes. Going forward, I'll try and reproduce in
small amounts of code and file reports.

One was pretty silly, I used "end" as a variable name. It blew up with a
syntax error on a line where I was assigning to it, but didn't tell me what
line or what variable name. (But it did say something about an unexpected
assignment, so it knew where the problem was, it just didn't tell me.)

I've got the stacktrace issue right now with an error regarding an incorrect
byte index into a unicode string. I get why that happens, just can't find
what's causing it in my code.

Edit: changed to an ascii string after seeing someone mention it here, now I'm
getting a BoundsError in copy! at array.jl:49, and again the stacktrace tells
me nothing else besides the top-level function call.

------
abdullahkhalids
Matlab's strength does not only lie in the simplicity of it's code or in not
having to load libraries explicitly. It also lies in the fairly good IDE.
Built for scientists who want to prototype code quickly, there is an
interpreter and an editor right there for you. Not to mention that you never
have to configure anything, it just works.

I love Julia, but for wider adoption, it will definitely need integration with
a good IDE that "hides complexity from it's users".

~~~
bjz_
There is Julia Studio[0], but I'm not sure it is competitive as of yet.

[0]: [http://forio.com/products/julia-
studio/](http://forio.com/products/julia-studio/)

~~~
dankoss
I've been looking at this, but it doesn't yet have watch windows and package
import is somewhat broken. That said I do like the interface.

------
DonGateley
Julia intrigues me and I'm on their mailing list but daily perusal of activity
on that list has shown me clearly that Julia is still a long way from deciding
what it will be when it grows up.

I quite like it and look forward to all the conceptual issues being settled
and a stable version delivered. Lotsa' smart people providing input on that
but that's both a blessing and a curse.

To much variety of intrinsic data aggregates for me but they justify that on
it being compiled and very performance sensitive. Thus a lot of "you can do x
on an A but not y. But if you must y, a B is provided instead.'

~~~
omaranto
I'm not very familiar with Julia, could you provide an example of what you're
taking about in the last paragraph?

~~~
DonGateley
[https://groups.google.com/forum/#!topic/julia-
users/7DXD7Qbk...](https://groups.google.com/forum/#!topic/julia-
users/7DXD7QbkXy4)

Starting with Stefan Karpinski's first comment.

------
username223
So I want to plot a few lines and label my axes. First step? Install 2 of the
3, ... er, 4 available plotting packages, named "Winston" and "Gertrude," or
"Jenkins" and "Marsalis," or something else equally meaningless. Once I've
done this, I can issue a bunch of low-level commands to produce my simple
plot.

Matlab may be an ugly language, but offering this kind of amateur software as
a replacement is just pathetic. Octave, R, and various python packages have
been viable for years.

~~~
idunning
It is open-source software, not a walled garden - there are going to be
multiple options, and they are not going to all be named ["PLOTTINGISHERE$i"
for i in 1:4].

If you like MATLAB/pyplot/matplotlib style, PyPlot.jl is for you.

If you like ggplot2, Gadfly.jl is for you.

If you like gnuplot, Gaston.jl is for you.

Finally, but not least, is Winston.jl, which is its own thing altogether.

I think in many cases its good for packages that overlap to come together/one
to become dominant, but I don't think that applies here.

[https://github.com/stevengj/PyPlot.jl](https://github.com/stevengj/PyPlot.jl)

[https://github.com/dcjones/Gadfly.jl](https://github.com/dcjones/Gadfly.jl)

[https://github.com/mbaz/Gaston.jl](https://github.com/mbaz/Gaston.jl)

[https://github.com/nolta/Winston.jl](https://github.com/nolta/Winston.jl)

~~~
username223
I guess Gaston would be my choice, since I'm most familiar with Gnuplot syntax
for tweaking plots. Still, it's a shame Julia inherited the Ruby/Rails
convention of making up nonsense names for packages. While they don't need to
be named PLOTTING$i, it wouldn't hurt for them to be named Plot::Gnuplot, etc.
(or whatever the syntax is for nested names). Doing otherwise is just putting
branding ahead of actually trying to help people.

------
Argentum01
For those new to Julia, you can also try it out here:
[http://forio.com/julia/repl/](http://forio.com/julia/repl/)

(Full disclosure, I'm affiliated)

------
eliteraspberrie
CSV is rarely used with Matlab. Can Julia read HDF, H5, or CDF formats?

~~~
iamed2
Yes, there are packages that can read and write HDF5 (including specific
support for .mat) [0] and NetCDF [1] formats.

[0]: [https://github.com/timholy/HDF5.jl](https://github.com/timholy/HDF5.jl)
[1]:
[https://github.com/meggart/NetCDF.jl](https://github.com/meggart/NetCDF.jl)

