I also wanted to comment on this, and I'm glad you brought it to the
list.  There are several advantages to having things in SymPy even if
they already exist in Sage, not just group theory but all aspects of a
computer algebra system.

First, as David noted, it will be implemented in pure Python.  This
has several advantages.  One, as David also noted, is that it makes it
much easier to use in environments where installing or compiling a
large binary would be otherwise impossible.  This is coupled with the
fact that SymPy has no further dependencies. Mobile phones are one
example of this.  Environments where you have no administrational
control over the machine might be another.

Another reason this helps is that, as we all know, Python is a very
nice language to read.  So if someone is interested in the
implementation of something, they will probably get much more out of
the implementation in SymPy than the one in, say, Maxima, which is
written in Lisp.

Second is the fact that SymPy can be used as a library. Last time I
checked, this is not doable with Sage, or at least not easily (the
other difficulties such as installation aside). When you install Sage,
it just installs a binary on your computer.  You can't type "import
sage" in your regular Python interpreter.  You have to run the Sage
Python to get the Sage code.

Third, related to the second point, SymPy is (or at least aims to be)
extensible.  So someone should be able to write their own classes that
subclass ours and work nicely with the rest of SymPy without modifying
any SymPy code.

Fourth, specific to group theory, there are places in future code in
other parts of SymPy (e.g., the polys) that could benefit from a
strong group theory module.

Fifth, Sage is GPL, and SymPy is BSD.  This won't matter to many
users, but for those for whom it does, it is essential. Examples of
such people might be those people who want to be able to embed the
system into a proprietary system, or simply those people who want to
reuse some of the code in their own project (proprietary or not).  I
don't want to start a license war, but it's worth pointing this out,
as it is a real life difference that affects many people.

Aaron Meurer

On Mon, Sep 3, 2012 at 8:46 AM, David Joyner <wdjoy...@gmail.com> wrote:
> On Sat, Sep 1, 2012 at 9:41 PM, Chris Smith <smi...@gmail.com> wrote:
>>> at soon, perhaps I should look at it? If so, is there a ticket
>>> number/link I should
>>> post a review at?
>>
>>
>> https://github.com/sympy/sympy/pull/1498
>
> From there, you posted this question, which might be of more general interest:
>
> "I'm also wondering what SymPy has to offer over sage after seeing how much
> work has already gone into sage...can you give any pros to the work that is
> being duplicated here?"
>
> I think the main thing to this latest work on group theory in sympy is that
> it is a pure python implementation of some very complicated algorithms
> in computational group theory. They are, I'm sure, in Gap and I think the
> authors of those programs are probably all Gap developers. (Gap is an
> interpreted Pascal-like language which is about as fast as Python.)
>
> One pro is that once this filters up to PyMath (a cell-phone app),
> one can use sympy's group theory as a stand-alone app on a
> cell-phone or tablet. There is a Sage app but it requires an internet
> connection.
>
> Gap is included in Sage, but only a small part of Gap has been re-written
> in Python (or actually Cython, for greater speed). Mostly, the group theory
> computations rely on parsing the commands, passing them to Gap, and
> returning them
> to Sage. This communication pipeline can be quite complicated to set
> up, especially if the output is very large. Of course, Gap has a lot of
> group-theory structure which isn't even in Sage as a Python class.
> In that case, you basically have to use Gap directly (you can start a
> Gap command-line session using the Sage command gap_console()).
>
> Hope these comments help.
>
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To post to this group, send email to sympy@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> sympy+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To post to this group, send email to sympy@googlegroups.com.
> To unsubscribe from this group, send email to 
> sympy+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sympy?hl=en.
>

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

Reply via email to