When I was a freshman in high school, my older -- and much smarter -- brother Frank was in all the math AP classes. For the holidays, Frank successfully convinced my parents to buy him a Texas Instruments TI-59 calculator. At that time, the TI-59 was the most advanced and expensive portable calculator on the market. It had more buttons than I had ever seen before on a hand-held device, but its coolest feature was that it was programmable. By running custom magnetic strips through the built-in card reader, programs could be easily reloaded into the calculator. The buttons, the strips, the 10-digit display and the speed at which this little machine could almost instantaneously calculate factorials just blew me away. The TI-59 sparked my interest in both mathematics and programming in a way no other technology had in the past. While I had seen Apple IIs and TRS-80s at the store, those computers were priced in the stratosphere, especially for a 14-year old kid in the late '70s.
Fast forward to the holidays of 2008, where my own kids use technologies light-years more powerful than that now quaint programmable calculator. My 14-year old daughter has a multi-core Linux PC in her bedroom that she uses for work and play, while her brother who is two years older casually uses an Apple TV to browse the expanding universe of YouTube videos. And just before the Thanksgiving holiday this year, a parcel arrived from Wolfram Research that recaptured the enthusiasm and excitement I experienced with the TI-59 almost 30 years ago. Mathematica 7 is Wolfram's most advanced, sophisticated, and feature-packed release yet, and has so much algorithmic power and flexibility packed into its bits that you could spend a lifetime mastering the millions of computational permutations it is capable of.
Mathematica 7 ships with over 500 new features beyond its predecessor (Mathematica 6) that was released over a year ago. Rather than list all 500+ additions, I focus on the highlights oriented toward the programming and engineering audience that dominates Dr. Dobb's readership. Each version of Mathematica delivers a plethora of new capabilities with a few that stand far above the addition of a new function or graph type. In Mathematica 6, the killer feature was the Manipulate function which brought to life the once static results of numeric and graphic output. Manipulate lets you add dynamic variables to a statement which would render the output with sliders, buttons and drop-down lists that could be used to quickly visualize changes to variable input. The other huge step forward in that version was Wolfram's release of its Mathematica Player, which allowed compiled notebooks to be freely distributed and interacted with using the Mathematica Player client. And because this client runs on the same platforms (Windows, Mac OSX, and Linux) that Mathematica does, cross-platform code execution is a worry-free reality.
Mathematica 7 also has its share of killer features, but if I had to pick two areas, they would be image manipulation and parallel computation. Over 15 new graphic primitives have been added, ranging from BezierCurves to SplineKnots. An number of chart types, including Bar, Bubble, Histogram, Pie, and Sector, and their 3D counterparts, have been added. Numerous 2D and 3D functions have been added or enhanced to visualize Contour, Stream and Vector Density Plots as well as various visualization directives and options such as Transparent, PolarAxes, and ContourLabels.
But the coolest data visualization features are Mathematica 7's new image processing and analysis functions. These let you treat images just like any other data type and manipulate them accordingly. The new functions like ImageCompose, ImagePartition, MorphologicalComponents, and TopHatTransform go far beyond the other Photoshop or GIMP-like image functions also included in Mathematica, such as Blur, ImageResize, ImageReflect, ImageRotate, Sharpen and the various filters like Charcoal, OilPainting and SaltPepperNoise that can be applied to image data via the ImageEffect function. Using these new image analysis and transformation functions, you could leverage Mathematica's power to create powerful image manipulation workflows within minutes. Everything from medical imagery to satellite topology photos could be interrogated, manipulated and rapidly evaluated for various research and commercial purposes.