I am a mathematics student who wants a tool on the side, either specifically aimed at, or well suited for abstract algebra (ring/ideal theory, module theory, but perhaps graphs and combinatorics as well). My purpose is mainly for learning/experimenting/exploring, but also somewhat to keep my programming skills up. I have the following loose requirements:
- Does abstract algebra "out of the box" (lots of built in functions) well
- Well supported and widely used; If a book has been published on it, it's a plus
- Used/preferred and/or respected by researchers/professionals in the field of mathematics
- Not too much of a steep learning curve, and somewhat swift to use, i.e. I should be able to put a script together to test out an idea rather quickly.
- It's free (unless it's Mathematica or Matlab where I have a student license)
I have used or briefly looked at the following:
- Mathematica (used rather frequently, but not for that much abstract algebra)
- Matlab (used rather frequently, but not for abstract algebra)
- Python (used frequently, but not for abstract algebra)
- SageMath (briefly looked at)
- Magma (only heard of)
- Lisp/Scheme, Haskell and other similar functional languages (used some, but not for algebra)
Question 1: What system, perhaps from or closely related to (but really not limited to) the list above, would you suggest I use, if I want to use it to test out things in abstract algebra for learning/exploring; But also perhaps want to have learnt something that I might actually use in a workplace?
Question 2: Actually I wouldn't mind using Python together with Spyder for this, so is this possible and advised?
Question 3: I am curious about Sage, and looked at this thread. In addition to what has been mentioned there, would you say Sage fits my criteria?
(I use both Linux and Windows, so operating system doesn't matter that much. Online interpreter is a plus, but not necessary.)