|
[Date Index]
[Thread Index]
[Author Index]
Re: Functionality and Reliability
- To: mathgroup at smc.vnet.net
- Subject: [mg34983] Re: [mg34958] Functionality and Reliability
- From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
- Date: Tue, 18 Jun 2002 02:48:22 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
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
JAPAN
http://platon.c.u-tokyo.ac.jp/andrzej/
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
|