On Tuesday, January 22, 2013 2:40:17 AM UTC-5, Richard Fateman wrote:
> I rarely write programs of any length in Mathematica, because (as I've > > said) I hold the programming language in generally low regard. > > On the other hand I am pretty much familiar with the language because > > I wrote a parser for it (in Lisp) some time ago, and in my experience > > one of the best ways to really learn a language is to "implement" it.
That's crazy. Implementing a language teaches you nothing about its true strengths and weaknesses. To learn that, you must *use* it for real-world problems, not the toy problems of theoretical computer science.
> It is also useful for finding high-precision values of numerical > > library functions to compare to other programs, e.g. Bessel functions, > > that I was experimenting with. Unfortunately for Mathematica, I found > > bugs in > > its Bessel function (reported and acknowledged by them). > > Here's one in version 8 (I do not yet have version 9 installed) > > q=429515858585961022071539/6922263581864661506963; > > > > a=N[BesselJ[0,q],45]; > > b=N[BesselJ[0,q],100]; > > c=N[BesselJ[0,q],45]; > > > > a==c > > returns False.
Discovering and reporting this kind of bug is useful, but you're still in the realm of toy problems. Such bugs exist in many useful codes, and are only a minor source of error.
SPICE3 has been around for about a quarter of a century, and has been critical to billions of dollars of electronic design efforts. Nevertheless, I found and reported a bug in a SPICE3 variant last week. "All non-trivial software has bugs".
> If I were using a computer to do something that required correct answers > > for, say, life safety, like building a bridge, I would follow WRI's > > advice and not use Mathematica.
I use Mathematica in the creation of designs for space flight hardware. But, of course, I don't *only* use Mathematica. It's most useful for exploring ideas ahead of detailed analysis with more specialized software. But in my business counting on unverified calculation, regardless of the source, is asking for trouble.