Re: Re: Types in Mathematica

*To*: mathgroup at smc.vnet.net*Subject*: [mg62515] Re: [mg62456] Re: Types in Mathematica*From*: "Steven T. Hatton" <hattons at globalsymmetry.com>*Date*: Sat, 26 Nov 2005 02:47:16 -0500 (EST)*References*: <200511191053.FAA16418@smc.vnet.net> <200511241133.GAA29353@smc.vnet.net> <9355ABB1-49A9-44BF-A50A-D795F5CAAD8B@mimuw.edu.pl>*Sender*: owner-wri-mathgroup at wolfram.com

On Thursday 24 November 2005 17:35, Andrzej Kozlowski wrote: > Well, this is obviously something that can't be tested and will have > to remain just a matter of opinion. Personally, however, I would say > that to become a good Mathematica "programmer" in my sense, it is > better to spend the 8 years on learning subjects such as > computational commutative algebra, numerical analysis etc. than to > "waste them" on learning "the tricks of the trade" of other > programming languages, which are rather different form the "tricks of > the trade" of Mathematica. This relates to a long-held opinion of mine which is. The first step to writing code well is to have something to say. Programming is in many ways "simply" a means of expression as is writing in a "natural" language. I wish I could say that a majority of my software development experience was directly related to math and physics. Nonetheless, there are abstractions which transcend specific domains. For example, the study of natural languages can be illuminating with regard to Mathematica grammar. > But of course this depends a lot on what > exactly you mean by a "Mathematica programmer". From my point of > view, it is more useful for a Mathematica programmer to understand > what Groebner basis is, what CylindricalAlegebraicDecomposition does, > or how interval arithmetic works, etc, etc, than to know about data > types, objects, and all the other notions that you have been > discussing and that are only of tangential relevance to what I use > Mathematica for. It's not a question of what I want to use Mathematica for. It's a question of how to (best) use mathematica. There are rather pragmatic reasons I was considering ways of implementing types in Mathematica. For example, I was considering the possability of creating 3D vectors and the like, and using the type of these objects to determine how they are displayed, and how they behave when they appear as arguments in, or how they should be displayed. > But of course I accept that one can use Mathematica > for quite different purposes and then the relative relevance of these > things may be quite different. When I wanted a means of crating a locally orthogonal basis in Mathematica, I turned to my experience in 3D graphics for a solution. I've found a few surprising limitations in the offerings of Mathematica in terms of mathematical functionality. When I asked questions about Mathematica as a programming language, I have been intending the types of issues treated in the TMGB-P by Michael Trott. There are numerous subtelties dealing with order of evaluation, effects of attributes, canonical ordering of arguments, etc. which lie completely in the domain of Mathematica as a programming language. In order to use Mathematica effectively, one has to have a fairly good grasp of such matters. There is clearly an underlying programming language which is, to my knowledge, nowhere formally presented in isolation. That may be a business decision. I don't know. Steven

**Follow-Ups**:**Re: Re: Re: Types in Mathematica***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>

**References**:**Re: Re: Re: Types in Mathematica***From:*"Virgilio, Vincent - SSD" <Vincent.Virgilio@itt.com>

**Re: Types in Mathematica***From:*"Steven T. Hatton" <hattons@globalsymmetry.com>