There are only a handful of personal computing applications that I get excited by whenever a new version is released, and Mathematica is one of those programs. Now in its 8th release, Wolfram Mathematica represents a culmination of computational power and expertise. Those who are already Mathematica users and developers, upgrading to Mathematica 8 is a no-brainer (especially since it works with any Mathematica documents created with versions 6 and 7). For the others who are either on the fence or wondering what all the excitement is about, read on.
Since Mathematica 8 builds upon its predecessors, this review will focus mainly on the features added to the product since its last release. For those who wish to read my earlier review of Mathematica 7, read it here.
With over 500 new features, it's hard to pick out which new additions are most appealing due to the wide variety of professionals that use Mathematica. The product spans engineering, scientific, financial, and educational uses as well as many other disciplines involving numerical computation and data visualization. Nevertheless, if I had to choose the top 20, these would be my personal list (in no special order) from a developer's point of view of the most useful additions in Mathematica 8:
- C code generation and compilation to a dynamic library or standalone executable
- Dynamic libraries linking into Mathematica at run-time (no need to restart the Mathematica 8 environment)
- Native support for Compute Unified Device Architecture (CUDA) and OpenCL GPU parallelization
- Free-form Linguistic Input
- Wolfram|Alpha integration
- Improved Graphic Rendering
- Expanded Image and Video Processing
- Text Recognition in Images
- Oscillatory integration
- Permutation Group calculations
- New statistical functions like Non-Parametric Distributions, tool-tip data visualizations
- Financial Engineering functions that span massive number of types of trading indicators, symbolic representation of cash flows, effective intreats rates, annuities, etc. and a comprehensive FinancialDerivative super-function, an InteractiveTradingChart function, and more
- Expanded image processing, including morphology, segmentation and feature detection
- Arbitrary geometric transformations and image alignment
- Bode, Nyquist, and Nichols control system visualization plots
- Discrete and continuous wavelet transform analysis (for example, DiscreteWaveletTransform, WavletImagePlot functions) that follow the standard conventions of the field
- Expanded network analysis (Data and Social network data analysis)
- Various graphs: export to GraphML, GXL and other popular formats
Let's take a look at some of the more interesting new features in detail.