Immutability has many virtues. It is nice to create an object, pass it around to many functions, and know that it is still the same. Immutability is very safe.
Mutability has many virtues. It is fast. People are used to it. I think it is important to support both types. I think that people who like immutability are ok with it being a bit slower. Right now the Immutable->mutable->computation->mutable->Immutable process works well I think. It would be better if, as Aaron suggests, we ensure that the transition is very cheap. There are many interesting discussions to be had however about defaults and standards. Despite being a fan of immutability in symbolic systems I think that we should stick to having MutableMatrix the default. I think that many users will want to do things like M = eye(3) M[2, 2] = 10 If we stop them from doing this I think that they will be confused. The unevaluated by default discussion is separate. The next chance I get a free 20 minutes I'll put up a pull request to change the behavior. I do encourage discussion on the topic. In one of the issues someone did want an unevaluated immutable matrix expression. This will still be possible but you'll have to use explicit MatAdds/MatMuls. To be clear on the original point. Even if we had a MutableBasic I still think we should have an ImmutableMatrix. I do not think we should merge Mutable and Immutable. -- 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.
