Re: Not quite a Swell FLOOP?

*To*: mathgroup at smc.vnet.net*Subject*: [mg37456] Re: [mg37430] Not quite a Swell FLOOP?*From*: Andrzej Kozlowski <andrzej at tuins.ac.jp>*Date*: Thu, 31 Oct 2002 04:40:49 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

On Wednesday, October 30, 2002, at 07:12 AM, Steven T. Hatton wrote: > >> object oriented programming. In particular: >>> The >>> very statement that 'a tensor is a geometric object which remains >>> invariant >>> under coordinate trasfromations' screams OOP to me. >> >> That's really just a matter of choosing how you think about these >> things. I prefer to think of tensors without any reference to >> coordinate transformations, they are just multi-linear mappings. > > Multi-linear mappings of what? I mistated the definition a bit. I > should > have said that a tensor is a geometric object independent of any > particular > coordinate system. The fact that it's invariant under coordinate > transformations, is a result of this refined definition. Nonetheless, > the > concept of a tensor completely void of all coordinate systems is, to > me, the > sound of one hand clapping. The concept of a vector space needs no mention of any coordinate systems. Neither does the concept of a manifold, its tangent bundle or a tensor (a section of the "bundle of tensors"). Coordinates are obviously useful for doing computations but not the best way to define or think about the concepts (or prove theorems). However, this is rather far from Mathematica and OOP. > >> However, the situation >> becomes different when you want to consider tensor algebras as objects >> in a wider class of of objects, like graded algebras, which in turn >> are >> a subclass of an even wider class of algebras etc. For considering >> such >> kind of hierarchical structures OOP is very useful and that is why >> programs designed for this purpose, (like Macaulay II) adopt a very >> much OOP approach. > > This is a bit beyond my current understanding, but it sounds to me > that you > are focusing on the algegraic nature of tensors. That's certainly an > interesting area, and for your purposes, objects may not be beneficial. I think it's the other way round. OOP is beneficial when you have a lot of hierarchical structure, so that you want elements of substructures to automatically inherit the properties of higher structures, etc. This is the main reason why specialized programs like Macaulay II, which is intended for the study of such hierarchical structures in Algebraic Geometry, tend to be very OO. By contrast Mathematica leaves the "structures" you are dealing with implicit. In Macauly II a symbol like x is always an element of some structure (usually some kind of ring) but in Mathematica its just a symbol. What counts is the functions that you define. Both approaches have their advantages, but for a *general purpose* science and mathematics program the Mathematica approach seems the right one to me. > > A place I believe OOP would naturally benefit Mathematica is in the > area of > XML and particularly implementing the DOM IDL. There seem to be some > problems with Mathematica's XML implementation. I suspect a good OOP > approach might help in preventing some of these problems in the > future. As > regards implementing the Document Object Model IDL, 'Object' is it's > middle > name. Since I know absolutely nothing about this I will diplomatically agree. But I am now sure if this XML business is really related to the Mathematica programming language? Andrzej Andrzej Kozlowski Yokohama, Japan http://www.mimuw.edu.pl/~akoz/ http://platon.c.u-tokyo.ac.jp/andrzej/