MathGroup Archive 2012

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

Search the Archive

Re: Book

  • To: mathgroup at
  • Subject: [mg127110] Re: Book
  • From: Ralph Dratman <ralph.dratman at>
  • Date: Sun, 1 Jul 2012 02:05:46 -0400 (EDT)
  • Delivered-to:
  • References: <3080724.30560.1340960821356.JavaMail.root@m06>


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.


  • Prev by Date: Re: How to rectify the error for NDSolve ?
  • Next by Date: Re: case of inconsistent API between Drop and Part?
  • Previous by thread: Re: Approximate Zero Times A Symbol
  • Next by thread: Re: Book