Hi,

SymPy is quite close to replace Mathematica for most basic things.
Some features are still missing though, so I will try to implement
those, but I wanted to discuss my plan here too, in case you would
have some suggestions, comments:

1) MatrixForm, TableForm

http://reference.wolfram.com/mathematica/ref/TableForm.html

this I plan to put next to Tuple (sympy/core/containers.py). And
printers for it into printers.

2) NumPy array()

So that you can use syntax like:

xdata = array([1, 2, 3, 4, 5])
ydata = xdata ** 2
data2 = array([xdata, 1.5 * ydata])

which just works in Mathematica (it's in the core language).

If you have numpy installed, then all is fine, but sometimes numpy is
not available, for example when you only have pure Python and install
SymPy. An example is google app engine, or when you don't have root
access to your computer and so on. So I could imagine having the
array() function in sympy, and it would try to import numpy lazily
(when you use it), and if it fails, use sympy's pure Python
implementation. So that users can simply count, that when they do

from sympy import array

it will just work, always. I plan to put it into
sympy/utilities/numpy.py so far.


3) Plot()

it should be refactored, so that it only holds the information about
the plot and handles common parameters. Then there would be
"printers", to print it using pyglet, or ascii art, or matplotlib, or
return a link using google chart api, and so on.

4) Manipulate

the logic and the class will be in sympy, but to be actually usable,
it will need some frontend (e.g. browser+ javascript), or Qt GUI. The
GUI part will not be in sympy.


The above are things that I am aware of at least.


The hard part above is that SymPy should stay as a *library*, which
means that it should have all the logic, but in order to build an end
product like Mathematica, one needs to plug in more pieces, in
particular some gui (and there is tons of options here, e.g. Qt,
mobile phones, web gui, ...), and faster libraries for doing numerics
(numpy, scipy, ...), some "data package" (with tons of physical data,
like chemistry tables, astronomical data, cities, ....) and so on. So
SymPy is just a component of the whole thing, kind of like "standard
library" to make Python directly usable for mathematics.

Ondrej

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to