MathGroup Archive 1996

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

Search the Archive

Re: Mathematica as a programming language. / Holy War?

  • Subject: [mg3145] Re: Mathematica as a programming language. / Holy War?
  • From: fateman at peoplesparc.cs.berkeley.edu (Richard J Fateman)
  • Date: 7 Feb 1996 12:00:36 -0600
  • Approved: usenet@wri.com
  • Distribution: local
  • Newsgroups: wri.mathgroup
  • Organization: University of California, Berkeley
  • Sender: daemon at wri.com

What fun...

In article <4f4hus$cpu at dragonfly.wolfram.com>,
Dave Wagner <wagner at bullwinkle.cs.Colorado.EDU> wrote:
>In article <4euo82$nph at dragonfly.wri.com>,
>Phil Perucci <pperucci at access.digex.net> wrote:
>>It seems the elegance of language is inversely proportional to its power.
>>

It's not clear what you mean by power, but a combination of
elegance and complexity in a language is unusual. Mathematica is
an example of an omnibus language. Bits and pieces of many other
systems.

>>Mathematica and Oracle's PL/SQL are two of the screwiest languages I have
>>ever used (ESPECIALLY MATHEMATICA), yet they are the easiest tools for
>>"getting the job done".
>
Dave Wagner wrote:
>Well, I hope we don't start a religious war over this, but I strongly
>disagree.  All of the seemingly diverse features of the language are
>really manifestations of only a handful of very powerful primitive
>concepts.  The most general of these is pattern matching and rule
>substitution.
...

>There are really only a few "magic cookies" in the language (like
>Sequence, Evaluate, Unevaluated, and certain attributes), and most
>users aren't aware of them anyway.

Unfortunately, intermediate/advanced programming requires that users
learn or guess about the painful stuff. e.g. packages, the mysterious
underlying default decisions in plotting, numerical code, what is
simplification, etc.

I think that few people understand the matching procedure in its entirety,
even though (I agree with Dave) that this underlies a lot of the system.

This is not the sign of a language (as proposed from time to time)
that should be taught as a first programming language.  Mathematica
makes it difficult to illustrate the concept of scope. It implements
Lists as Arrays, making nonsense of data structure access times.
It uses non-deterministic algorithms for updating of structures
out of sight of the user. And more.


>Mathematica is the easiest tool for "getting the job done" precisely
>because it has so many built-in high-level functions. 
....

This may be true for Dave Wagner and many other readers of this list,
but it is hardly an absolute statement. It is clear
that one's choice of "easiest tool" is heavily conditioned on 
what one is familiar with, and the task at hand.

For example, I cannot write a WWW server in Mathematica, though
I can easily write one or take it off a library shelf,
in several other languages.  And if the task at hand is to do
some lengthy computation fast, Mathematica is generally
a poor choice.

Some people like  C, C++, competing computer algebra systems, 
ML, Lisp (emacs, common), Perl, etc.

Dave writes..
> Would it be a
>better language if you had to implement all of these from scratch?  I
>don't think so.  If you find the kitchen-sink approach distracting,
>just ignore everything you don't need.

Mathematica works great for 100% correct input.

But I think that virtually every reader of this list has evidence that
some commands especially ones that are not entirely
correctly stated, can hop up and grab you by the shorts.





-- 
Richard J. Fateman
fateman at cs.berkeley.edu   http://http.cs.berkeley.edu/~fateman/


  • Prev by Date: Re: Mathematica as a programming language. / Holy War?
  • Next by Date: Simplifying Expressions containing SQRT
  • Previous by thread: Re: Mathematica as a programming language. / Holy War?
  • Next by thread: Re: Mathematica as a programming language. / Holy War?