MathGroup Archive 2005

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

Search the Archive

Re: Re: Types in Mathematica

  • To: mathgroup at
  • Subject: [mg62515] Re: [mg62456] Re: Types in Mathematica
  • From: "Steven T. Hatton" <hattons at>
  • Date: Sat, 26 Nov 2005 02:47:16 -0500 (EST)
  • References: <> <> <>
  • Sender: owner-wri-mathgroup at

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 


  • Prev by Date: Re: Problems with brackets when exporting postscript
  • Next by Date: Re: webMathematica problems if using Xvnc
  • Previous by thread: Re: Re: Types in Mathematica
  • Next by thread: Re: Re: Re: Types in Mathematica