[plt-scheme] Mathematica v6

From: David Einstein (deinst at gmail.com)
Date: Thu Nov 15 12:05:39 EST 2007

Full disclosure: I have friends at Wolfram (I recently co-authored a
paper with Stan Wagon and some Wolfram employees), and as a result
have a copy of MMA.

On Nov 15, 2007 7:49 AM, Shriram Krishnamurthi <sk at cs.brown.edu> wrote:
> 1. Give them credit: they acknowledge these languages exist.
> Would you find these languages listed on Matlab's site?  No,
> if they compared at all, they'd be taking potshots at Java, etc.
> And why?  Because...

That is what they expect their customers would be switching from.
Judging from the engineers I know, Matlab's big competitor now is
Python.  The problems one attacks with MMA, on would not think of
using java or C for, but depending on the problem one might use a
Lisp, ML, etc.

> 2. Mathematica genuinely did learn from these languages.
> When Mathematica provides Map, they really mean Map as
> God and Guy Steele (maybe not in that order) meant it.
> When it provides unification, it means as God and Robinson
> meant it.

Sort of.  As in Scheme, you can use functions with side effects in
Map, and I am quite sure that mutation was not His idea.

I tended to write lispy code in MMA, and judging from the responses
that I got from people who were much more accomplished at MMA than I
was, lispy code is possible, but not encouraged.

I once used closures (in a problem which cried out for them) and got a
response something like "Hmmn ... cute ... don't do that."
> Mathematica's problem is that "most advanced" in that phrase
> is equivalent to "most complicated".  It's too darn hard to figure
> out what the interaction of Prolog with Haskell with Scheme is,
> and that's what you're up against in Mathematica (which a bunch
> of advanced mathematical representations and algorithms thrown in).

The foundation of Mathematica reminds me more of defmacro than
anything else, and as with defmacro, if you try to get too tricky you
pay for your sins.  It is very easy to get into areas of the language
where the semantics are far from clear.

> I used to love programming in Mathematica as an undergrad.  Then
> I noticed that I was writing my numerical analysis code in Scheme
> and was actually just studying language feature interactions in Mma.
> That's what made me realize something was wrong.  But I find it hard
> to take exception with the intent of that comparison.  It's the extent
> of it that is a mess.

Mathematica is a very good, almost indispensable, tool for symbolic
mathematics.  Other than the marketing department, it makes little
pretense to being a general purpose programming language.

I would be very upset if you took away my copy of MMA, but on any
given day I am much more likely to be writing code in almost any other

> Shriram
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.