Personally, I think it is important to have access to source code. I do in fact read the source code of Sage (and many other projects) often. However, many people with whom I speak (user's of Matlab and Mathematica) don't feel this is important. Their logic goes something like this...
"I have been using 'M' for decades and I have done fine not having access to the source. I don't see why I would need it." I find this line of thinking hard to argue with, because it is based on their experience. I bring this up because I think we need to have better reasons about why open source is important - arguments that are compelling to folks who have been working successfully for years without reading the source. I don't know what these are, but I know that we need them. Cheers, Brian On Fri, May 1, 2009 at 8:26 AM, rjf <fate...@gmail.com> wrote: > > > The argument (specious, probably) is that if the compiler is open- > source > as well as the library, the operating system code etc, then an > industrious person > could try to verify all this. > > It is often said that "Testing can only demonstrate the presence of a > bug, not its absence". > > BUT > > I think it is clear that code examination (by humans), regardless of > how many times it "helps" is fundamentally prone to its own kind of > errors. > > There are lists of errors (I've published some) that are committed by > several computer algebra systems. > Typically these have to do with bad decisions in choosing branch cuts, > dividing by zero, etc. > Often these cases are not specifically considered but fall out of the > "usual" program decisions and > fall out the wrong way. > > There are also extensive discussions of the role of proofs in > mathematics; see especially a paper in > Comm. ACM by Demillo Lipton Perlis and reactions to it. > > > > > On May 1, 3:40 am, Jason Grout <jason-s...@creativetrax.com> wrote: >> Marshall Hampton wrote: >> >> I too have founds bugs by reading code that I've written - usually, >> >> very >> >> early on in the development process. Note that I'm talking in the >> >> context >> >> of result verification, however. That is, when I publish a paper >> >> that >> >> depends on computations, it is incumbent upon me to verify those >> >> computations. I'm saying that I don't think that reading source code >> >> at that point is particularly necessary or useful. >> >> >> Mark >> >> > Really? I find that very surprising. While it was not the primary >> > reason that I became interested in Sage, the ability to examine the >> > source code for verification purposes was a major attraction. >> >> But reading the source still doesn't get around bugs in a compiler, bugs >> in supporting libraries, etc. Mark, if I understand you correctly, you >> are saying that a person: >> >> 1. uses software to generate a list of results, and then >> 2. checks these results by hand or in some way that doesn't use a computer. >> >> Step 2 is to avoid (or at least drastically cut down the chance of) >> errors due to any issues with a particular computation system. I agree >> that this should be done for published results to the extent possible >> (or reasonable), and that results that only rely on computational >> results (without independent verification) should be flagged as such. I >> also agree that being able to read the source code for doing step 2 is >> not necessary, *unless* your method of verification is to trace through >> the program by hand. >> >> Of course, I'm sure there are many results in many fields that would be >> practically impossible to independently verify in any reasonable amount >> of time. I suppose those people at least verify that they get the same >> results with completely different systems (e.g., Sage and Mathematica >> and Magma). Of course, since Sage interfaces with a number of different >> systems, it can help with this. >> >> Jason > > > --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---