A few things to add:
- Note that writing vector expressions in an efficient manner is not 
trivial and actually an unsolved issue in Julia. If you write 

x = a + b .* c 

there will be temporary arrays created which leads to a major slowdown. 
There is a devectorization macro though that can solve this by transforming 
this into

for n=1:length(N)
  x[n] = a[n] + b[n] * c[n]
end

So although vector expressions might seem easy to use for a beginner, in 
practical programming they are really non-trivial.

- Matlab is actually so clever that it will only copy arrays internally 
when one writes to an array copy. This is called copy-on-write (COW).

- I think it is true that Julia is a little harder to learn than Matlab 
when one considers only the absolute newbie programmers. But if you dig a 
little deeper into programming Julia offers several serious advantages that 
will pay out after taking the first step. The type system with multiple 
dispatch is one of the most awesome things I have seen so far. And when you 
start learning about how to use mex in Matlab or the equivalent things in 
Python I think one has reached a point where Julia would be much easier to 
use.

- For a mathematician statements like "x=x+1" can be very confusing no 
matter how this is implemented internally... :-)

- I have to admit that a reshape!(A,dim) would make a lot of sense. But 
there might be technical reasons why it is not possible to change the array 
dimensions in an existing array.




Am Donnerstag, 24. April 2014 07:16:26 UTC+2 schrieb Ethan Anderes:
>
> Jameson:
>
> Yes, the Matlab choice is slow and doesn't scale, but it's very easy to 
> reason about. I think it was instructive for me to try and think of a real 
> life bug that realized my worries. I came to realize that most of the code 
> where I was using vec() was embedded in a chain of function calls like
>
> b = M * exp(vec(a))
>
> ....so I see your point about fast easily composible functions when output 
> and input share memory.
>
> I recently had a discussion with a colleague that commented that R was 
> essentially developed by statisticians which is why it doesn't scale well 
> (not sure if that is actually true but thats beside my point). On the other 
> hand, things like python are written by CS folks which hinders access for 
> mathy-science folks who just want to prototype an idea every now and again 
> without investing the time to upgrade their programming skills. I think 
> julia can have the best of both: easy to learn + modern CS. 
>
>
>

Reply via email to