Free-form Linguistic Input
Leveraging the technology pioneered for the WolframAlpha.com website, Mathematica 8 has incorporated the linguistic processing ability to take plain English input and translate it into Mathematica functionality. For instance, the phrase "plot sin xy" will render a colorful three dimension contour sin wave map, and "temperature chicago december 2009" will generate a line graph showing the temperature fluctuations in Chicago throughout the month of December, 2009. To leverage this linguistic input engine, simply precede the linguistic query with a single equals ("=") sign. Using a double equals ("==") sign will inform Mathematica to return not just the result but all the related data comprising the result, much the way the Wolfram|Alpha website displays its output data from such queries. Not only does this new feature provide an easy interface for the laymen to interact with the power harnessed by Mathematica, but its a tremendous accelerator for developers. What would previously take dozens or even hundreds of lines of code to interpret can now be accomplished in a single query. The real "aha moment" comes when programmatically chaining multiple queries together that intersect a number of queries via a user interface built within Mathematica or externally via Wolfram Workbench to allow students, researchers, business analysts, educators and engineers to perform sophisticated real-time data transformations and mash-ups with the click, slide and/or drag of a mouse.
C Code Generation
Working within the Mathematica 8 environment feels like home for those who have lived within its notebook files for years. Yet for those who prefer custom interfaces, command line interactivity or incorporation of Mathematica engine-powered results to feed into another application, the ability for Mathematica to generate the C code that hooks into the Mathematica kernel and processes results outside of the Notebook environment further extends Mathematica's capabilities beyond its original confines.
Combining C structures with Mathematica's symbolic language equals the SymbolicC programs that can be created. C code can be generated using the CCodeGenerate function. This C code can then be compiled as a DLL or standalone executable using the CreateExecutable function that can be used in a workflow process or linked into an external custom application without touching the Mathematica user interface environment.
Mathematica 8 also comes bundled with MathematicaScript binary that can be used to create stand-alone shell scripts with passed arguments, pipes and other Unix script functionality. Invoking this functionality in a script file is as simple as adding "#!/usr/local/bin/MathematicaScript -script" to the first line of the file, followed by the function(s) and expressions to be processed. Calling the script works the same as any other shell, Python, Perl, Ruby, or other scripting language works from the command line, further extending Mathematica into automated workflow and data processing scenarios.
Expanded Image and Video Processing
New filtering, segmentation and shape analysis functions have been added to Mathematica 8, as well as one of my favorites, the EdgeDetect filter. Combine this with the ability to import and export Quicktime video, recognize text and detect prominent lines in the still frame images and you have some amazing power to draw upon. In fact, several examples on the Wolfram website programmatically show off these ideas, helping to fuel the imagination and innovative spirit of Wolfram's customers.
There are also a slew of new 2D and 3D hardware-accelerated polygon fills and texture galleries, illustration capabilities of drawing, aligning and distributing objects as well as the ability to use any Mathematica expression as a texture (such as a web cam video stream). Just think of the aggregated possibilities: combine streaming images from cameras trained on specific production line processes overlaid with real-time performance metrics, changing colors based on alerts or error conditions, or supply chain data visualization dashboard overlays based on real-time or hypothetical inventory status. Mash this up with Wolfram|Alpha curated web data and the new image processing features really come into focus.