Re: Book
- To: mathgroup at smc.vnet.net
- Subject: [mg127110] Re: Book
- From: Ralph Dratman <ralph.dratman at gmail.com>
- Date: Sun, 1 Jul 2012 02:05:46 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <3080724.30560.1340960821356.JavaMail.root@m06>
David, You wrote, "The cruel fact is that it takes a long time to get really good at Mathematica and nobody masters it all." Having spent the past year learning (some of) Mathematica by using it essentially full-time during the work week, I strongly concur with your statement about the difficulty of acquiring the necessary knowledge and familiarity. Every contemporary programming system brings to the table three major areas of strength and/or weakness: the language, the development environment, and the built-in library. The strength of Mathematica's library is clear. It makes a large contribution to productivity. By any measure, the availability of a very wide range of well-implemented pre-programmed functions is of great benefit to the user. What is less clear to me is the contribution of Mathematica's language and development environment to both the difficulties and the benefits of using the system. For example, the non-iterative ("functional") nature of the language seems to be a strong positive, but this is not as easy to quantify as the usefulness of the library. Similarly, Mathematica's unusual merging of symbolic and concrete computation clearly provides some benefit to the user who understands it, while exposing the neophyte to a considerable amount of confusion -- much of which might be ameliorated by additional documentation. On the other hand, the poor error handling and frequency of crashes in Mathematica is, in my opinion, a strong negative. Recently I have been using the extremely helpful code snippet messageHandler = If[Last[#], Interrupt[]] &; Internal`AddHandler["Message", messageHandler]; This heroic couplet makes Mathematica stop on the issuance of any unsuppressed message. As such, it has greatly diminished the time it takes me to get something working. Yet even with the message handler in place, I still have to recover from random crashes two or three times per day -- which is simply unacceptable! If I were a department manager who happened to have a personal stake in software uniformity, that one weakness would offer me a perfect excuse for avoiding the product entirely. The usual issues of depth and accessibility of documentation are shared by most contemporary languages. I too think Mathematica could play a significant role in both industry and education. But for this to happen, the community has to be willing to acknowledge weaknesses as well as strengths -- with the obvious goal of improving the net usability of Wolfram's powerful and fascinating system. Ralph