I don't like native math classes for several reasons. For example, I don't have control over it and I can't say exactly is it my error or class implementation error when something going wrong. And according to this post Bugs in Vector3D and Matrix3D there're a lot of bugs. Also every matrix.transformVector() call creates new vector instance. Also in some cases I need 3x3 matrix instead of 4x4 for 3D math.