Julia for Numerical Computation in MIT Courses
github.com
github.com
This is an incredibly good sign for hobbyists in a number of fields where Matlab completely dominates the research end of the spectrum. In the DSP realm the amount of experimental software that relies on Matlab and the number of research publications that pack in Matlab implementations is enough to be a pain in the side for anyone outside of an institution where Matlab licenses are taken for granted. Hopefully it will become a trend.
Octave, in my opinion, should be relegated to (trying to) run legacy Matlab code, while Julia or Numpy should be the first choice for any new code.
Octave dev here. I agree.
Every time I have to implement yet another idiocy of the Matlab language, I die a little inside. It's a dirty job, but someone has to do it.
Simple single installers (Python(x,y), etc) have certainly helped.
I am an Octave / Matlab fan myself, and think that Julia/ Python/ R/ etc don't quite hit the sweet spot for matrix driven algorithms and 100-1000 line programs that Matlab does. Call me old fashioned....
Yea, coming from matlab it just feels so wrong to write out loops by hand. Fortunately it seems some people are working on trying to solve that here: https://github.com/lindahua/Devectorize.jl
But, this issue is well-identified in the Julia dev community, and is on the roadmap for 0.3: https://github.com/JuliaLang/julia/issues/4853
In my opinion Julia is great but still a bit immature.
I also think any "immaturity" is only really in the package ecosystem, especially after the release of 0.2. Even then, the package ecosystem is strong for the things that people really need (naturally), and of course you can call any Python package from Julia if you want as well.
http://wiki.octave.org/FAQ#How_is_Octave_different_from_Matl...
Sadly, this is not possible very frequently.
I'll have to take a look see through this and write out the analogous code with my Numerical Haskell libs after the holiday season to compare.
I have some ideas for some numerical code in Haskell, but I keep coming back to numpy/julia/matlab for my day-to-day.
But as usual, many developers resist to "use the best tool for the job" instead of "a language to rule them all", and Julia is now starting to have libs for everything.
Not that is bad, quite the contrary. The language is quite nice and already achieves C like speedups for many of its features.
So I can easily see it getting a place in the mainstream.
in fact, i didn't realise it was intended to be a matlab replacement at first. i just looked at the specs and thought it looked interesting (i still haven't used the interactive dohickey (ijulia)). if you come to it from that pov, the only thing that seems odd is the 1-based indexing (and if you're old enough to have used fortran then even that doesn't feel so strange).
For example, the idea of writing some number-crunching as a webservice with MATLAB or Octave is not an option, but with Julia is totally possible (and has been done more than once already) - and it builds on strong foundations (e.g. libuv). Heres an example (disclaimer: my own site) http://iaindunning.com/2013/sudoku-as-a-service.html
Just to note also: I'm completely unaffiliated with Enthought except that I have a registered account with them for occasional feedback.
[1]: https://store.continuum.io/cshop/anaconda/
[2]: Packages: http://docs.continuum.io/anaconda/pkgs.html
apt-get install ipython
Done.Why is installing a specific version of a package you fancy (e.g the latest or some previous) a nightmare?
And there "apt-get" doesn't help you much.
pip install mypackage==1.2.3
I believe the general formula is apt-get for python and python-pip, then use pip for everything past that point.And in general, virtualenvs are the right way to go for anything other than throwaway scripts. I've got a global numpy/scipy/requests install so that I can just do `ipython -pylab` and start getting work done. But real project code happens in a virtualenv.
On a mac anaconda works pretty well. I sent a link to a marketer with minimal python experience and she was up and running in under an hour. (Admittedly, she's rather more adept than a normal marketer...)
Even so, APT does help you quite a bit with build dependencies, so whatever non-standard thing you've decided to do, you can still do it with (hopefully) not too much work. Feel free to ask me about any specific thing you're having trouble with.
Solutions like Enthought Canopy, superpack or Anaconda exist to solve that exact problem (disclaimer: I work for Enthought).
In addition, all of these higher level languages popular in science seem to have pretty good support for calling existing C/Fortran libs when necessary. Julia is no exception, which makes it possible to take advantage of all the work that's been done developing optimized numerical codes.
That said, I would like to see something more automatic. In my limited experience, Julia's ccall works as advertised, but f2py in Python is much simpler to use.