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

**References**:**Re: Language vs. Library why it matters / Turing***From:*Richard Fateman <fateman@cs.berkeley.edu>