I wondered if the move to python3-only starting with numpy 1.17 would
be a good reason to act on what we all seem to agree: that the matrix
class was a bad idea, with its overriding of multiplication and lack
of support for stacks of matrices. For 1.17, minimum python supposedly
is >=3.5, so we will be guaranteed to have the matrix multiply
operator @ available, and hence there is arguably even less of a case
for keeping the matrix class; removing it would allow taking out quite
a bit of accumulated special-casing (the immediate reasons for writing
this were gh-10123 and 10132).
What do people think? If we do go in this direction, we might want to
add PendingDeprecationWarning for 1.15 (maybe DeprecationWarning for
python3; for python2 matrix would never disappear).
All the best,