I could write about how it works, but for now I mostly care about implementations that are available to me.
Famously Mathematica and MAPLE are the expensive options wiht a big marketing budget.
Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, sets, lists, vectors, matrices and tensors. Maxima yields high precision numerical results by using exact fractions, arbitrary-precision integers and variable-precision floating-point numbers. Maxima can plot functions and data in two and three dimensions.[…]
Maxima is a descendant of Macsyma, the legendary computer algebra system developed in the late 1960s at the Massachusetts Institute of Technology. It is the only system based on that effort still publicly available and with an active user community, thanks to its open source nature. Macsyma was revolutionary in its day, and many later systems, such as Maple and Mathematica, were inspired by it.
Somewhat newer, sympy: (as seen in sagemath, which also includes Maxima)
SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.
It has basic differential geometry support, interesting Geometric Algebra stuff, called GAlgebra, (see also the manual) which is a selling point since Mathematica is kinda crappy for that.
PARI/GP is a GPL package favoured by number theorists and has some fun stunts and has a lot of functions for modular forms, plus the ability to convert some number theoretic stuff to native C code.