MathGroup Archive 2000

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

Search the Archive

Re: cellular automata & OOP stupid?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg21800] Re: [mg21727] cellular automata & OOP stupid?
  • From: Jacqueline Zizi <jazi at club-internet.fr>
  • Date: Thu, 27 Jan 2000 22:57:48 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

1) About Cellular Automata, why don't look at Mathematica Help > cellular
having selected Mathematica Book? This gives you "cellular Automata" and
some code and examples and Stephen's work.

2) About OOP, thanks for dealing with a more general question than the
usual technical ones on the Group. I don't agree with you  when saying
"object oriented programming is one of the most supid inventions ever made"
and
"If you want to do OOP programming you should use SmallTalk, if you
prefere functional logic programming you should use Mathematica and if you need
efficient code you should use C."

I do believe, from my experiences, that I don't "want to do" such or such
programming, neither I "prefer" such or such programming paradigm, I want
to solve problems with a computer without having to twist my mind to please
a machine or a language whatsoever.

So, for me, one of the most important thing that Mathematica allows is to
be able, with the same syntax, to use all these paradigms, without having
to switch all the time betwen them, for local efficiencies reasons that
remain to prove, first and second because I don't want to loose a lot of
time to interface results between different programs. Is it usefull to win
1/4 of 1/1000 s using such or such trick and then loose hours to interface
different worlds?

Further on, the most important is to have a new reflexion about solving
problems using computers. Far from every other things this new approach
allowed by using Mathematica is the more important thing to me.

For example, I wrote a simulation tool for boats navigation in Mathematica
about 4 years ago (presented at the 1994's developer conference) for one
company that also make TGV in France (very fast trains). I used OOP to set
the whole using upvalues.I used rewriting rules for example to translate
Fortran notations to readable one and between 2 main programs that I had to
link my simulation tool with (data analysis and modelisation program done
by 2 different other teams in other languages). I used functional
programming in a lot of cases where it was usefull to have the more simple
and more general code. I did appreciate not to have to switch from
SmallTalk to C to Mathematica to solve ONE problem (large general problem,
but ONE). At this time I did appreciate to not have to mind about PC or Mac
or else . I like Mac, the manager was working with unix on IBM, and other
developpers on other plateforms.


Other example, I'm working on a Graph Explorer that I Started when I was a
visiting scholar at Wolfram research in 96. There is a lot of programs done
in C to represent graphs and work on them. But all are inefficient to solve
some problems that I solved (Mathieu's conjecture and a Tutte's old
conjecture). Why? Just because the procedural way of thinking does not fit
well enough the nature of these problems.
Again, I use OOP to  set the whole, thinking of objects and links to
objects is a powerfull thinking used in mathematics in category theory.
Upvalues and fields trivial methods offered by Mathematica is enough for
that and already a lot.
I use functional programming for all transformations on graphs except those
releving of rule transformations as deletion-contraction. I use rule
transformation each time that one object (graph, vertex, edge or else)
needs to be viewed from different points of view. I use interface
programming as windows opening and button facilities to go further on
clicking just on a button to see the result of a transformation and also to
get to my data basis and information to objects quicker.

Other example, I was asked to write a Mathematica program to check results
obtained by a physician using Fortran to solve coalescence problems 1 or 2
years ago. I used again upvalues and OOP point of view to fit my feeling
about particules, one of each is an object interacting with others. This
worked well even if, in this case, I decided to have only one class of
objects.

I mean that it is convenient to have generic words (like objects, method,
function, operation, rule) to express general ideas that the computer
"understand".










Jacqueline Zizi




  • Prev by Date: RE: DSolve problems with system of ODEs. Solutions and Thanks
  • Next by Date: Re: Re: How can I teach Mathematica new functions
  • Previous by thread: RE: DSolve problems with system of ODEs. Solutions and Thanks
  • Next by thread: Re: Could this be improved?---Continued