Owners of Intel-based Macintosh computers are still waiting for versions of many of their favorite applications that are built for the new hardware. Although Apple's code translation technology is a marvel, it's no substitute for software that runs natively on the x86 platform. But Mac owners will soon have a new source of professional-grade, commercial software for their beloved machines. The catch is that the software was meant to run on Windows.
Forget Boot Camp. Booting Windows on Apple hardware is an interesting sleight of hand, but this is different. What CodeWeavers is offering is the ability to actually run Windows applications from within Mac OS X. CodeWeavers' commercial product, CrossOver Office, is based on the open source Wine project, technology that has made it possible to run many Windows applications on Linux systems for almost 10 years. By early August, it will do the same for Mac OS X with CrossOver Mac.
Earlier Macs could run Windows software only with the help of Virtual PC, a Microsoft product that completely emulates the x86 platform environment on Apple's PowerPC hardware. Wine works differently. Because it runs on Intel hardware, it doesn't have to virtualize the environment the way Virtual PC does -- which means it doesn't have Virtual PC's overhead. Instead, Wine merely offers a custom implementation of the Windows APIs that translates Windows system calls into native ones. From the application's point of view, Wine makes the underlying OS look like Windows.
This is an incredible piece of engineering, representing years of hard work on the part of the Wine developers. And believe you me, there's no love lost between Microsoft and the Wine project. Microsoft no more wants Wine to work on the Mac OS than it wanted it to work on Linux.
And that's the real shame of it. Although it's great that Mac owners will soon be able to work with Microsoft Access databases and lay plans with Microsoft Project without having to install a full-blown copy of Windows, I can't imagine a worse scenario than having to use a translation layer to run Microsoft's proprietary software on Apple's proprietary OS. CrossOver Office outperforms Virtual PC and allows users to forego the cost of a Windows license. But in other respects, it's every bit as much a step down, if you look at it from an open source perspective.
The idea of using a translation layer to make software compiled for one OS work on another isn't really new. FreeBSD has had Linux binary compatibility for a while, and Sun provides similar capabilities for Solaris as well, with its Project Janus. Running Linux binaries under Project Janus means the Linux software gains the advantages of advanced Solaris features, such as Containers. The thing is, most users won't ever need to.
Linux is open source, and much of the most popular software running on Linux systems today is, also. When you have access to the source code of an application, binary compatibility doesn't really matter. In many cases, it's trivial to take a piece of software that was written on Linux and modify it so that it will compile correctly for Solaris. Once the groundwork is laid, you can even make custom modifications to the software to cater to the new OS. Who knows? It might even run better on Solaris than it did on Linux.
By comparison, the Wine approach to interoperability is like dropping marbles into a black box. Any time you have to guess the details of a proprietary API to run software that can handle proprietary file formats on someone else's proprietary OS, you're skating on thin ice. The true road to interoperability is open source, and open, standard file formats such as OpenDocument that don't put your data at the mercy of a single software publisher.
So while my hat's off to CodeWeavers for responding to a clear customer demand, let's put things into perspective. Reverse-engineering software that can bridge the gaps between incompatible proprietary software platforms isn't really revolutionary. What's revolutionary is not having to.