MathGroup Archive 2005

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

Search the Archive

Re: Re: Language vs. Library why it matters / Turing

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61433] Re: [mg61415] Re: Language vs. Library why it matters / Turing
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Wed, 19 Oct 2005 02:16:10 -0400 (EDT)
  • References: <dipr57$hfl$1@smc.vnet.net> <200510180645.CAA11285@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On 18 Oct 2005, at 15:45, Richard Fateman wrote:

> Mathematica is unusual in being
> complex, secret, and non-deterministic.  These are each, in my view,
> significant detractions from the language and why I would not
> suggest that it be used for (say) a first course in programming.


The problem of the alleged non-deterministic nature of the  
Mathematica programming language could easily be solved by means of a  
device used by creators of most other programming languages. The  
device consists simply of declaring anything that is not specified in  
the documentation as "legal" as "illegal", whether it works or not.  
This would deal with all the cases of "non-deterministic" behaviour  
in Mathematica known to me (not counting obvious and acknowledged  
bugs). Actually, I remember from the days when I tried programming in  
other languages (including C) that they would also produce  
unpredictable results if you violated the official syntax (one would  
sometimes get correct and sometimes incorrect output). The difference  
is that Mathematica being far more flexible and intuitive, constantly  
tempts one to try something not described int the documentation but  
which appears to follow by analogy form other things that are already  
known to work. (As an example, you can take Maxim's recent discussion  
of the way repeat does not work with Sequence in pattern matching.  
There is nothing in the documentation that says it should work, but  
it seems that it ought to by analogy with other things. In fact it  
doesn't but many other thing, equally unstated, do.)

I also think that Mathematica is is a great language to be used for a  
first course in programming. It has one enormous advantage over most  
of the others: almost nobody finds it boring once certain initial  
difficulties have been overcome. Interest and motivation being the  
most important things in a first course on any topic this is an  
invaluable quality of Mathematica that makes it superior to most  
other programming languages. I speak on the basis of personal  
experience. I have not only taught Mathematica for many years at  
variety of levels but also I recall distinctly my first impressions  
of programming when, many years ago, as a math undergraduate in  
England, I took a (optional) programming course. The language that  
was used was in those days considered very advanced and particularly  
suitable for maths and science (not Fortran ;-)) . And the impression  
I got  was that programming was about the most uninteresting,  
intellectually vapid subject that I came across during all my  
undergraduate years. By contrast neither I nor anyone I know has ever  
felt that way about programming in Mathematica. Experience shows that  
you are unlikely get far with teaching anything, however deep or  
powerful, unless you can somehow make it interesting to your students  
almost from the start. With Mathematica this is easier, certainly in  
the case of math students,  than with any alternative known to me  
which is why i very strongly recommend it for a first course in  
programming.

Andrzej Kozlowski
Tokyo, Japan




  • Prev by Date: Re: Bug with Limit, Series and ProductLog ?
  • Next by Date: Re: Re: Solving Diophantine Equations
  • Previous by thread: Re: Language vs. Library why it matters / Turing
  • Next by thread: Re: Language vs. Library why it matters / Turing