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/