Research in many areas of science would be unthinkable without the help of a computer algebra system (CAS). These tools can solve tough integrals or differential equations in seconds, giving a scientist valuable time to do real research instead of wading through dozens of lines of tedious algebra. Proprietary solutions not only cost huge amounts of money, but also offer little interoperability, often even breaking compatibility between different releases of the same program. Enter Maxima, a free-as-in-speech solution with a thriving development community.
Symbols rendered in TeXmacs
However, starting maxima for the first time is a little subtle. While Maxima comes with a command-line interface which is well suited for quick calculations, this is hardly the way to go. The native GUI variants are not much better as mathematical symbols still get rendered in ASCII chars. The real thing is to use the TeXmacs editor, which provides an interface to Maxima as well. Now you can have beautiful TeX-rendered symbols on your computer screen.
Once you have mastered this, you can immediately start working. Calculus, linear algebra, differential equations and many more areas of mathematics are support by Maxima's impressive function list. However, finding the desired function can be a bit difficult (e.g. the simplification function omnipresent in every CAS is called radcan) as the extensive documentation is not always helpful.
The most important thing you can say about a CAS is whether its results are reliable. And while you cannot say that Maxima does not have any bugs, the list of past and present bugs is not longer than in proprietary counterparts and is mostly confined to certain areas (i.e., taking limits and definite integrals).
As with any other CAS, Maxima's strength lies in symbolic calculations. While you can use it for numerical computations as well, the performance is lower and the routines are less convenient. Error handling sometimes means that you see a Lisp backtrace just because you forgot to enter a numeric value for a variable. For serious numerics, either use Octave or specialized tools like LAPACK.
A pretty decent feature of Maxima is its session handling. You can always store the current state of your session or the value of certain variables or function definition. This makes it very easy to extend Maxima's functionality by writing your own scripts.
Overall, Maxima is a CAS that gets the job done. Sure, there are some little quirks, but in general the project is in good health and can be expected to get even better in the future.