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 <[email protected]> wrote: > On Sat, Sep 1, 2012 at 9:41 PM, Chris Smith <[email protected]> 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 [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. >> > > -- > 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. > -- 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.
