Inside Mesa for OS X – past, present and future
A long day's journey into Cocoa
The first major new office app for Apple's Mac OS X made its debut quietly last week, and as you can see from the screenshots below, it's very lovely indeed. But the Mesa spreadsheet actually has an interesting history in its own right. Paul Lynch of P&L Systems in the UK, which publishes Mesa for OS X and has kept the original NeXT version alive all these years, has an insight into the many twists and turns of Apple's OS strategy that's isn't often told. So indulge us.
Mesa was originally authored by Athena Design's Dave Pollak, and was first announced to take advantage of the NeXTstation - the first low-cost mass-market NeXT hardware, in December 1991, with beta testing continuing through to the following summer.
Then a NeXT developer and consultant, Lynch took advantage of the programmable API that Mesa offered to put together, in a couple of days, the first commercial implementation of Mesa at a trading house in Houston. "I'd effectively written something that threw away five man years of work," using the Mesa as a calculation engine, he told us. Lynch took on European distribution for Mesa and a couple of years later, with interest in the NeXT platform waning and Dave Pollak preoccupied by an OS/2 port, P&L took over responsibility for its development.
Database hooks were added, the UI was polished and beta versions prepared for the portable implementation of the NeXT system on Solaris and Windows NT. These betas were never officially released. In all, Mesa gathered some 16,000 licenses on NeXT which Lynch reckons is a pretty decent run rate, given that generous estimates put the NeXT user base at around 70,000. It could qualify Mesa as the most popular third party NeXT app.
Return of the Steve
Following Steve Jobs' return to Apple in December 1996, bringing his NeXT technology and developers with him, an aggressive Rhapsody road-map rapidly emerged. Unfortunately of course, this proved to be too aggressive for most Mac developers, who were asked to rewrite their classic Mac applications for NeXT. And in May 1998, a little more than a year after Rhapsody was announced, Jobs ripped up the roadmap putting in place the OS X strategy.
"Rhapsody initially was OpenStep. Now, to get Mesa onto Rhapsody we had to finish up the OpenStep port - but while Apple was doing things to Rhapsody, we never released it. You need a stable beta to write to," said Lynch.
The new roadmap bought Apple some time to add a compatibility layer, Carbon, which would allow developers to port to the OS with relatively few changes to legacy Mac applications. But there was more to this than a name change: OS X would have a new imaging layer, with the PDF-based Quartz extending the old Display Postscript model.
For P&L, that meant rewriting some 20,000 lines of Display Postscript code - including custom user interface widgets - out of 120,000 lines of code in all. "That's small by Excel standards, but big by NeXT standards".
But that wasn't P&L's biggest problem as Apple's OS strategy zig-zagged across the map. Support for Objective C to C++ support was dropped without notice, he says. Mesa's calculation engine had been written in C++ and the UI and application logic in Objective C. But when P&L fired up the first Mac OS X beta, all of sudden Mesa wouldn't compile.
Objective C nor C++ calls could be made from the same module, it transpired. Apple had re-implemented the low-level Foundation layer in pure C to ease the path for creating Carbon. P&L needed to wrap the C++ calls with C wrappers. That took getting on for a man year's work, said Lynch.
What's NeXT for Mesa?
Lynch reckons Mesa will appeal to beginners frustrated by AppleWorks' basic spreadsheet component, and Apple loyalists who don't want to use Excel, or simply don't need its advanced power-user functions.
In a frightener delivered to the Apple Developer Conference last month, Steve Jobs emphasized research indicating that as many as half of the existing Mac user base would consider defecting to new OS X native applications if they were available sooner than their existing Classic apps. If native apps have half the polish and performance of Mesa, then that's not going to surprise us.
Mesa's a real Cocoa app and like OmniWeb, doesn't drop behind the Dock when a window is maximized. Thereby avoiding one of the most infuriating and unwanted games Carbon apps - including alas, the OS X Finder - play with the user.
What's next? We wondered if Mesa could become the default number crunching engine in the way that Lynch first implemented it as a beta, nine years ago. It could be, but there's some way to go yet, he says.
Full AppleScript needs to be added - "we haven't implemented all the fancy things you can do with AppleScript" - but the goal is for Mesa to be fully scriptable. Internally and externally. The plan is also to harness XML data sources, although Apple threw a major roadblock in the path of developers when EOF was dropped without notice, says Lynch. He describes EOF as "the best thing for Mac OS X - a wonderful thing." It's a persistent object mapping layer between Cocoa and a relational database, and it's been a key part of WebObjects success.
Mesa will also improve on Excel imports - Lynch describes it as 'reasonably' compatible, but adds "if you find something doesn't work, tell us and we'll do something about it"
Mesa is available as a free, time-unlimited download restricted to 20x20 cells. If you want the full Monty, it'll cost you $50 for an educational license or $129 for a single user license. It's started to appear on Mac OS X sites such as macosxapps this week. Highly recommended. ®