At a Glance
The MathWorks' Matlab has long been the preferred math program for many engineering uses. After several years' absence, the latest version, Matlab 6.5, brings it back to the Mac. This is exceptionally good news for science and engineering labs with a code investment dating back to Matlab 5.2, the last Mac version.
Matlab's return is also a promising development for users and manufacturers of Unix software for CAD and engineering; if The MathWorks' simple X11-based port of a Unix package to the Mac meets acceptance, the result could be the development of hundreds of professional Mac programs in those two arenas.
While You Were Out
Recent versions (6.0 and 6.1, for Windows and Linux only, and now 6.5, which adds Mac support) have included significant improvements to three main areas: speed, the programming environment, and graphical representation of applications.
All matrix operations and related linear-algebra functions, along with fast Fourier transforms (for analyzing wave inputs in electrical engineering), have been optimized and accelerated. The beefed-up programming facilities include an excellent Code Editor/Debugger and Code Profiler; the latter is useful for spotting critical slow spots in m-code, Matlab's programming language. Another plus, Matlab's new JIT (Just in Time) Accelerator uses some of the same profiling technology as Code Profiler to automatically speed up optimization of FOR and DO (looping commands in m-code), as well as other constructs you once had to optimize by hand. You can easily port Matlab m-code on the Mac to C or FORTRAN, for use with Apple's GCC (GNU Compiler Collection) compiler or Absoft's FORTRAN compiler.
And scientific graphics are just spectacular in this version: Matlab supports all sorts of exotic lighting effects, transparency, slicing and sectioning in 3-D plots, and all the usual scientific-chart types (see "Head Shot").
While Matlab certainly boasts some stellar improvements, the toolboxes for generating Microsoft Excel add-ins and for data acquisition and run-time code are missing. But this won't be a severe problem in the university markets at which this version is aimed.
Head to Head?
Matlab and Wolfram Research's Mathematica (mmmmh; Reviews, November 2002) both provide proprietary programming languages and hundreds of math functions. But despite this surface resemblance, they compete directly in relatively few areas.
If you write about general relativity, number theory, or differential geometry, you probably use Mathematica. If you design suspensions for General Motors, refine radar functionality for Hughes, or program chip sets for Blackberry-capable handhelds, you're likely a longtime fan of Matlab and its companion, Simulink (see "Simulink 5: Simple Methods for Complex Models").
The head-to-head competition, evidenced by user-group interest and the number of books on the market, occurs in financial applications (options pricing, derivatives, and time series), neural networks (mostly for financial decision-making), and computation-intensive statistics (working with very large data sets or with resampling statistics). Both programs have comparable add-ons for wavelet analysis, fuzzy logic, and image processing. Many ready-made solutions, provided mainly by third parties, are available for each program (and often downloadable for free from The MathWorks' or Wolfram's Web site). Your decision will likely depend on which of these solutions you need.
Macworld's Buying Advice
Mathematica users may just shrug, but most longtime Matlabbers will be ecstatic to see Matlab's Mac comeback. Matlab 6.5 provides a much improved programming environment and state-of-the-art execution speed on all matrix math functions. It's one of the first technical programs delivered to the Mac in "we're Unix software, get used to it" mode, and it's generally an impressive success. l