I would have gone A = zeros(Int64,5) Alan
On Monday, November 24, 2014 3:28:50 AM UTC-5, Ronald L. Rivest wrote: > > I am just learning Julia... > > I was quite shocked today to learn that Julia does *not* > initialize allocated storage (e.g. to 0 or some default value). > E.g. the code > A = Array(Int64,5) > println(A[1]) > has unpredictable behavior, may disclose information from > other modules, etc. > > This is really quite unacceptable in a modern programming > language; it is as bad as not checking array reads for out-of-bounds > indices. > > Google for "uninitialized security" to find numerous instances > of security violations and unreliability problems caused by the > use of uninitialized variables, and numerous security advisories > warning of problems caused by the (perhaps inadvertent) use > of uninitialized variables. > > You can't design a programming language today under the naive > assumption that code in that language won't be used in highly > critical applications or won't be under adversarial attack. > > You can't reasonably ask all programmers to properly initialize > their allocated storage manually any more than you can ask them > to test all indices before accessing an array manually; these are > things that a high-level language should do for you. > > The default non-initialization of allocated storage is a > mis-feature that should absolutely be fixed. > > There is no efficiency argument here in favor of uninitialized storage > that can outweigh the security and reliability disadvantages... > > Cheers, > Ron Rivest > >
