I agree with 

On Wednesday, August 31, 2016 at 3:26:22 AM UTC+10, Chris Rackauckas wrote:
>
> Even then, creating the 5x5 dense matrix to then copy it into A[1:5,1:5] 
> is not what you'd want to do. Ideally would just have eye(5) return 
> something like I which has a size, and just sets A[i,j]=1 if i=j 0 
> otherwise, with checks that it's the right size. Actually, the current I 
> would do it if you defined a dispatch on setindex!. You still don't need 
> the dense matrix there...
>
> Tim Holy had the only example where you need the dense matrix, and it's 
> when you want to make a dense matrix to start with and them modify the off 
> diagonals of that same matrix. Even then, collect(eye(5)) where eye 
> returned some smart type instead of a matrix wouldn't be bad syntax to do 
> so, and it would be consistent with the rest of the library.
>
> I agree that there can be a teaching problem with Julia. A lot of things 
> happen like fast magic to "mathematicians not trained in CS". I don't think 
> the right way to go is to fill Base with methods that shouldn't be used in 
> most cases: someone could make their own "helper libraries" if they really 
> think it's an issue (another example is "EasyFloats" which are not type 
> stable, so they will just turn into complex numbers when needed like in 
> MATLAB. It might help new users from MATLAB see less errors, but I'd never 
> want to see it in Base.) Instead I think it comes down to documentation and 
> extensive tutorials to fix the problem (and filling up StackOverflow with 
> answers).
>
> On Tuesday, August 30, 2016 at 10:15:08 AM UTC-7, Christoph Ortner wrote:
>>
>>
>> If this is your only use-case of I, then you don't need it anyways. Just 
>> write 1.0 * A instead; same effect, independent of what type of array A is.
>>
>> But what if I use I in a different way? Suppose I want to A[1:5,1:5] = 
>> eye(5); I can't do that with I. Of course we could give it another type 
>> parameters, and then do the whole collect thing again. But then we are back 
>> to what I said before above about needless distractions.
>>
>> I don't understand why there is such a resistance to providing both the 
>> explicit arrays and the lazy functionalities in Julia.
>>
>> Christoph
>>
>>
>> On Tuesday, 30 August 2016 17:32:37 UTC+1, Júlio Hoffimann wrote:
>>>
>>> I don't think there is anything like pushing the language to computer 
>>> scientists, it's the exact opposite, making it seamlessly fast without 
>>> forcing the user to manipulate types. Again, you write B = I*A and get B = 
>>> copy(A) performance. That is the original proposal.
>>>
>>> Most of us follow the same development strategy while doing science, we 
>>> write something quick and profile later. The fact that Julia can be fast 
>>> from the beginning is the best thing about it, no need for rewriting code.
>>>
>>> -Júlio
>>>
>>

Reply via email to