quaternions do exactly the same thing as R3 vector space, cross products, and dot products. We'd probably be using quaternions now if they could have been manipulated such that multiplication with them was associative; the people messing around with them before we had good shit like R3 vector space etc were trying to get them to multiply associatively but they couldn't, thus leading to other stuff getting developed.