MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Functionality and Reliability

  • To: mathgroup at
  • Subject: [mg34983] Re: [mg34958] Functionality and Reliability
  • From: Andrzej Kozlowski <andrzej at>
  • Date: Tue, 18 Jun 2002 02:48:22 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

I agree with almost everything in Maxim's message. However it is 
difficult to see concrete practical steps deriving from it, except ones 
like "better quality control, remove the bugs etc". The problem with 
these that whatever one does some problems and bugs will always remain 
and it will always be a matter of controversy whether that was because 
of insufficient quality control or in spite of the quality control. 
Besides,  Mathematica is the result of evolution stretching over a 
decade and as such has a long inheritance of design decisions, often 
taken by people who have already left WRI, and which sometimes do not 
sit well with later developments. Probably only a complete re-write of 
the entire system could remove certain irritating inconsistencies and 
"cavalier" approaches to certain problems mentioned by Maxim. However 
any such major re-write would probably have to come at the expense of at 
least a temporary slow down in the development of new capabilities. 
Programs like Mathematica involve some quite sophisticated areas of 
mathematics, which means that at least some areas require highly 
specialized people to work on. Although I have no inside knowledge of 
WRI but I very much doubt that all members of the kernel team can work 
on all the different areas that the Kernel encompasses. (In fact it 
seems to me that in some areas there is no more than a single person who 
really understands the mathematics and the algorithms involved). The 
implication of this is that (not counting pretty trivial bugs) the time 
spent on fixing or improving existing capabilities my be in direct 
competition with developing new ones. It seems pretty clear from the 
marketing point of view developing new features is a better policy than 
fixing old ones. Users are reluctant to pay for releases of programs 
that contain no more than "bug fixes", even if these "bug fixes" involve 
major changes to the program. Also, new features make much better 
advertising. Last and not least: if it really came to a either or 
decision it is not clear that the majority of users would choose to have 
the various problems mentioned by Maxim ameliorated (there is no hope of 
curing them completely) if it meant waiting longer for various long 
awaited new features.
Another aspect raised by Maxim comes up against the same difficulties. 
Personally, I have often wondered whether in cases where the answers 
given by computer algebra programs (not just Mathematica) are so 
unreliable that they always have to be checked by hand, it might not be 
better to return no answer at all. (I am of course referring to the 
cases where the reason for the unreliability is the lack of sufficiently 
general algorithms, not bugs in the implementation. The latter should 
simply be fixed). But I suspect that the marketing effect will be 
decisive here: if Mathematica gives up returning answers to certain 
inputs "only" because no reliable methods that guarantee correctness 
exist, a competitive program will very likely implement the some of the 
existing unreliable approaches and the claim will be made that it can do 
something Mathematica can't. Moreover, not all these "wrong answers" are 
entirely worthless. To sophisticated users some of them can be quite 
useful. Sometimes if one understands what is likely to go wrong, one can 
make use of a "wrong answer" to find the "right answer" more easily than 
one would have to do without any answer at all. Still, I think it would 
be much better if Mathematica had the ability to recognize the 
unreliability of some of its answers in case they are the result of the 
lack of sufficient general methods rather than simply bugs (Mathematica 
does it sometimes, but only in a very limited way). I think it would 
also be a good idea to try to impress on the users the fact that we are 
actually quite far from being able to create a cyber-mathematician, and 
that all tools like Mathematica must be viewed as essentially heuristic, 
which means they are meant to help humans to solve problems rather than 
do the job all by themselves.

Andrzej Kozlowski
Toyama International University

  • Prev by Date: RE: Trace a function
  • Next by Date: About Front End
  • Previous by thread: Re: Functionality and Reliability
  • Next by thread: Re: Re: Functionality and Reliability