The other new feature set that greatly appeals to computational enthusiasts is the bevy of new parallel computing additions. Previously sold as a separate add-on, Mathematica 7 seamlessly integrates these multi-kernel functions to take full advantage of multi-core systems. By default, it supports 4 kernels (4 cores) out of the box. For those developers fortunate and wealthy enough to afford a dual quad-core (or more) system, an additional license configuration will need to be purchased from Wolfram to take advantage of the additional cores. One of the more frustrating things I encounter when using various tools on my quad-core workstation is the complete lack of awareness programs have of my computer's multi-core architecture, especially when those programs are computationally intensive. Wolfram recognized this rapidly expanding trend and took advantage of the extra horsepower via its new Parallelize, ParallelTry and ParallelEvaluate functions which provide automatic and concurrent expression evaluation. Parallel performance can be tweaked and queued using the ParallelMap, ParallelCombine, ParallelSubmit, WaitAll and WaitNext functions. These and many other parallel computing functions ensure that developers have tremendously granular control over what will be sent through the parallel pipeline and exactly how that data will be processed. Mathematica 7 is the first program I've used on my 64-bit Linux-driven quad-core rig that showcases the power a multi-core workstation can deliver. It's one of the first features I demonstrate for my technical peers and the response from them is always the same -- That's cool!
Another slick addition in the previous Mathematica release was its Wolfram managed web service data look-ups, called "Curated Data". Calling these in-line functions poll Wolfram's servers have which compiled and formatted this lookup data from a variety of scientific and statistical resources. That version introduced such data sources as the AstronomicalData, ChemicalData, and FinancialData among other things which allowed users to poll datasets subscribed to and optimized by Wolfram for its Mathematica customers to consume. Now in version 7, these Curated Data sets have been expanded to include GenomeData and GenomeLookup for human gene sequence information, ProteinData for protein model structures and functions and even GeodesyData for geodetic coordinate systems data.
Existing data collections for such functions as the AstronomicalData, DictionaryLookup, and WeatherData have been expanded with additional data properties, entities and objects. Combining these functions together make for some truly stunning, relatively real-time data visualization revelations that would have previously required days or weeks of programming to do what can now be done in Mathematica under a minute.
While it does annoy me that Wolfram has locked down this web service to its own company servers, I can rationalize this decision to a certain degree assuming that Wolfram is scrubbing the data and keeping it as up-to-date as possible. I suspect Wolfram would also argue that by curating the data, they ensure the stability and reliability of the data being consumed from the Internet rather than dealing with SOAP soup that other web service-consuming applications have to contend with. Nevertheless, I still would prefer a SOAP and/or RESTful interface function to let me make that decision of data source consumption and accept whatever instability risks it might bring. For now, I will have to continue to curate my own data sources by scraping the web, populating a PostgreSQL database and using Mathematica's JDBC-compatible SQL database connectivity support (part of Mathematica's DatabaseLink toolkit) to pull the custom data into the application instead.
As Mathematica continues to expand beyond its single user interactive session roots into the realm of workflow automation, it has also added new functions to interact with messaging and the host operating system. The SendMail function adds email notification, great for being alerted when a complex, parallelized computation is completed or even something more sophisticated like being emailed a data-rich PDF complete with stunning 3D charts, manipulated images and beautifully rendered mathematical formulas to an internal company mailing list.
The new SystemOpen feature, similar to the existing Run function, provides a less verbose interface to easily open files or URLs from within a Mathematica notebook or operation. SystemOpen is accompanied by several other file determination and naming functions including AbsoluteFileName, FileExistsQ, FindFile, FileNameJoin and others. Combining the new parallel, image processing, email notification and external application execution commands can transform Mathematica into a serious data processing and messaging hub in a sophisticated workflow scenario. Combine this with Wolfram's gridMathematica and upcoming CloudMathematica add-ons for high-performance and distributed computing needs, Mathematica truly becomes a central controller for a mathematically intensive corporate application or research project.
I would be remiss if I didn't also mention that this new release sports hundreds of new mathematical algorithms and functions for mathematicians and educators. These include new discrete calculus algorithms, number theory functions (many of which I had never heard of before, like DirichletCharacter, MangoldtLambda and RiemannR), extended boolean computation, special functions like HurwitzLerchPhi and InverseHaversine, new Q-Functions like QhypergeometricPFQ, new utility functions like DiracComb and HeavisidePi and so much more. And perhaps the one enhancement that will further promote third-party and vertical market opportunities, Mathematica's Palette menu lets the Mathematica UI environment be enhanced and extended with custom palettes. One of the finest examples of this practice is action is the bundled Classroom Assistant, written by Eric Schulz, a mathematics professor at Walla Walla Community College. The Classroom Assistant palette makes the most frequently accessed calculations, commands and formatting ideal for presentation on an LCD projector or Smartboard. For more details, check out my audio interview with Eric at the recent 2008 International Mathematica User's Conference.