Friedrich, Julia does not only use ideas from Python but also from other languages, like Matlab, Lisp, ... (and of course it has it own state of the art, unique and amazing techniques).
Since julia aims at technical problems, with lots of linear algebra, it makes some sense to use * for matrix multiplication (everyday linear algebra) and use something else (.* borrowed from Matlab) to the less common matrix element-wise multiplication. What operation does `A*B` looks like to a scientist/engineer? I'm pretty sure it clearly is a linear algebra matrix multiplication. Although nobody admits, The "Juila" name is in fact a recursive acronym for "Julia's not Python". Just kidding :) However I would say that one has to get over some comparisons to other programming languages and start thinking of Julia as a new language on its own, for the best (all the nice features) and for the worst (another syntax to learn). I, who am not a Julia developer, felt that this was a gap that I had to jump over. Cheers, Happy coding, Cristóvão On Saturday, April 5, 2014 11:45:20 PM UTC+1, [email protected] wrote: > > Sorry, the dot makes it not clear, but even more confusing. Actually, ".*" > reads like dot (.) product (*). > E.g. in Python/Numpy and IDL +,-,*,/ are used for element-wise operation. > > Moreover, > julia> [1 2 3] + [1 2 3] > 1x3 Array{Int64,2}: > 2 4 6 > julia> [1 2 3] * [1 2 3] > DimensionMismatch("*") > > The more complicated symbols (as ".*") should be used for more complicated > operations like inner/outer product, i.e. when I have to think about > dimension shapes. > > In which situation I can use "<" for arrays? Never? Then we carry all the > time the dot with us. > > So I find a very inconvenient decision was made. > > Friedrich > > > The `.` in `.<` makes it clear that the operation is element-wise; this is >> especially important in `.*`, for example. >> >>
