MathGroup Archive 2005

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

Search the Archive

Re: Language vs. Library why it matters / Turing

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61502] Re: Language vs. Library why it matters / Turing
  • From: Richard Fateman <fateman at cs.berkeley.edu>
  • Date: Thu, 20 Oct 2005 00:56:21 -0400 (EDT)
  • Organization: University of California, Berkeley
  • References: <dipr57$hfl$1@smc.vnet.net> <200510180645.CAA11285@smc.vnet.net> <dj4p5f$gpf$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Andrzej Kozlowski wrote:

> 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.  

I doubt that this is done by most other programming languages. Most leave
an area of  "result is not specified by the standard".  I also
doubt that it could be applied to Mathematica in any interesting
sense because the specification would be huge, and full of bugs.

If the system were deterministic and there were only one implementation
you could solve the problem by saying, if you want to know what that
command means, it means  "whatever it computes".  That
also eliminates all bugs, because they then become features.

> This would deal with all the cases of "non-deterministic" behaviour  
> in Mathematica known to me (not counting obvious and acknowledged  
> bugs).

No. How about Maxim's  "weird" bug where the name of the variable changes
the computation?  Or problems which become strangely different when a
secret boundary is crossed and an algorithm changes.
In fact, most bugs are quite deterministic.

  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).

Unpredictable by you because you don't know enough about the language
is different from
Unpredictable by anyone because the language implementation varies
according to (say) where in memory the pages are loaded.

  ....

> 
> 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. 

  I think that more
important is whether the instructor is bored or not.  If you are
bored by (say)  C or Java or Lisp, you will do a poor job of
interesting your students.  If you are enthusiastic about Mathematica,
that will interest your students.

I know of no first-programming-language courses in American universities
that use Mathematica.  I think it would be fine to teach Mathematica
in an engineering problem-solving symbolic/numeric course to students
who already know how to program.  Nancy Blachman taught such a course
at Stanford.  I believe it was not open to Computer Science majors.
(I even lectured once in it!)
But most computer scientists would, I think, object to teaching
mathematica as a program language as such.



  • Prev by Date: Re: Language vs. Library why it matters / Turing
  • Next by Date: Re: Re: Getting a pure text widget?
  • Previous by thread: Re: Re: Language vs. Library why it matters / Turing
  • Next by thread: Re: Re: Language vs. Library why it matters / Turing