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.
- Follow-Ups:
- Re: Re: Language vs. Library why it matters / Turing
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Re: Language vs. Library why it matters / Turing
- References:
- Re: Language vs. Library why it matters / Turing
- From: Richard Fateman <fateman@cs.berkeley.edu>
- Re: Language vs. Library why it matters / Turing