MathGroup Archive 2005

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

Search the Archive

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

  • To: mathgroup at
  • Subject: [mg61577] Re: [mg61502] Re: Language vs. Library why it matters / Turing
  • From: Andrzej Kozlowski <akoz at>
  • Date: Sat, 22 Oct 2005 05:11:22 -0400 (EDT)
  • References: <dipr57$hfl$> <> <dj4p5f$gpf$> <>
  • Sender: owner-wri-mathgroup at

On 20 Oct 2005, at 13:56, Richard Fateman wrote:

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

Most of these are bugs. The issues arising from a change that takes  
place due to a change in algorithm should be solved by better  
documentation. There are also issues of different behaviour on  
different platforms due to the use of TimeConstrained. These are  
harder to deal with (probably one would need to somehow estimate the  
speed of the CPU starting of Mathematica.) By in any case, all of  
this concerns the "mathematical" aspects of Mathematica and I thought  
you supported the notion of "core language" (your brilliant idea of  
Atica that is supposed to make you rich at SW's expense), and that  
the math functions do not belong to that. So which one you are  
objecting to teaching in a first programing course, Mathematica the  
CAS or Atica the programming language?

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

Fail to see much difference as far as the use is concerned.

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

This is merely an unsupported assertion. I can also make such  
assertions but what is the point? Obviously Mathematica is primarily  
what is somewhat misleadingly called a CAS. Most computer scientists  
do not know its programming language and it is my impression most  
programmers tend to object to teaching languages they are not  
comfortable with.

But obviously I meant a first programming course for mathematicians  
and scientists.

Andrzej Kozlowski
Tokyo, Japan

  • Prev by Date: Re: regress versus fit - force throughzero/forceconstant term to zero
  • Next by Date: JLink discover and link to an already running kernel from a Java App
  • Previous by thread: Re: Language vs. Library why it matters / Turing
  • Next by thread: Re: Language vs. Library why it matters / Turing