Owners of Intel-based Macintosh computers are still waiting for versions of many of their favourite 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. However, 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 ten years. By early next month, 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 virtualise 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 translate 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 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.
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 licence. In other respects, however, it’s 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, too. 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 I take my hat off to CodeWeavers for responding to a clear customer demand, let’s put things in 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 do this.