When Apple switched to Intel processors, Windows switchers as well as Mac users who needed to run the occasional Windows app rejoiced.
That's because the chip switch was soon followed by the release of virtualization software that would let those users run Windows as if it were just another application on their Macs. While those first virtualization apps didn't support all of Windows's features and weren't terrifically fast, they were miles better than the Windows-emulation programs that had previously been available for the PowerPC chip.
Since then, however, virtualization apps for the Mac have matured a lot. There are now four main options: two commercial virtualization apps (Parallels Desktop for Mac and VMware Fusion), an open source alternative (VirtualBox), and another solution that lets you install Windows apps without installing Windows (Crossover). Those first two options are the most popular--and, for most users, the most sensible--alternatives.
I've reviewed many generations of Parallels and Fusion, so I've seen them develop. The advances they've made have been amazing. The two developers have pushed each other hard, and their products have leap-frogged each other to introduce new features and improve performance, resulting in two excellent alternatives. Running the current generations of these two virtualization programs--Parallels 8 Desktop for Mac and VMware Fusion 5 --on one of today's ultra-fast Macs, only the most hardcore Windows users will feel the need to reboot into Boot Camp to run Windows natively.
Another result of this competition is that the two programs have evolved into near twins of each other. They offer similar features, similar performance, and at times, even look similar. There are a few differences, though, and that's what I focused on in assessing the latest versions of each.
Opening and closing
The two virtualization apps do differ in speed--not the speed of the virtual OSes themselves or the apps in them, the speed with which they open, sleep, resume, and shut down those OSes. In some very simple testing, I found that Parallels is notably faster at each of those tasks, but particularly suspending and resuming. If you need to open and close virtual machines all day, these time savings could add up.
Both virtualization apps are relatively stable. I didn't have any outright crashes in either\, but I did experience some minor oddities in both. In Fusion, for example, entering and exiting full-screen mode causes more flicker and redraws than it does in Parallels. When using Parallels, however, I had some apps fail in Windows (which didn't happen in Fusion), and there were times where I simply couldn't type my password at the Linux login prompt.
While both Fusion and Parallels support literally hundreds of guest operating systems, most users will be using them to run one or more flavors of Windows. Overall, both do an excellent job.
In earlier reviews, I found that both Parallels and Fusion do well running earlier versions of Windows, so this time I focused on the upcoming Windows 8. For testing purposes, I used the final Windows 8 Developer Preview (which should be identical to the consumer version due out soon). Both handle it well, for the most part.
For the traditional Windows interface (the Desktop button in the Metro interface), both apps run Windows as well as their predecessors. Office applications run without delay, and I never felt like anything was lagging in either program. The Windows interface itself was fast and fluid, Web browsing was trouble-free, and the two email apps I tried worked fine.
Metro apps--the shiny new full-screen apps for Windows 8--also ran fine, as long as I was using them while I had Windows running in each virtualization program's "windowed" mode (meaning that Windows itself, rather than each Windows appindividually, got its own OS X window).
Trying to use Metro apps while in Coherence (Parallels) or Unity (Fusion) modes (which give each Windows app its own OS X window) had its challenges. It can be done in Fusion, but only if you run one Metro application at a time. If you launch another, it replaces the currently running app.
Parallels tries to work around this by putting each Metro full-screen app in its own OS X desktop. In theory, this should allow a user to run multiple Metro apps at the same time. In my testing, however, I found it didn't quite work. Sometimes I was unable to select those desktops; other times, I could select the desktop but not the app itself. (It must be said that Parallels' Windows 8 support is still under development, so some glitches aren't unexpected.)
In short, if you want to run Metro apps, keep Windows in windowed mode using either program, and you won't have any problem.
If you like to play any games that aren't available for the Mac, Fusion and Parallels' ability to accelerate 3D graphics in Windows is a wonderful thing. With these latest releases, Parallels has taken a clear lead on the gaming front. I tested quite a few games and generally saw better graphics and faster frame rates in Parallels than I did in Fusion.
For example, I installed the demo of ARMA 2, which includes an internal benchmarking tool. Using that tool, with the same detail and resolution settings in both Parallels and Fusion, Parallels generated 40 frames per second; Fusion could only manage 11. I got similar results when I tested each virtualization program's OpenGL speed using Cinebench.
I also tried the demo of Just Cause 2, which runs in Steam. Although it installed in both virtualization apps, I could only run it in Parallels, as the game requires DirectX 10. (Fusion only supports DirectX 9.0c.) Not only did it run, but it ran quite well. While Parallels support for DirectX 10 is marked as experimental, it worked well in my testing.
Both Fusion and Parallels have added support for Retina displays when running Windows: You can run at pixel-doubled or full Retina resolutions. Both programs also now support USB 3; Parallels includes Bluetooth sharing.
Parallels lets you drag-and-drop email attachments directly to Outlook in Windows, and includes a presentation wizard to help those using Windows to give presentations on projectors. You can also now drag and drop files and folders between Windows and OS X.
Virtualizing OS X and Linux
Want to test out some questionable piece of software? Use a virtual machine. Want to experiment with changing system settings? Use a virtual machine. Running a virtual copy of OS X can be handy for any number of reasons. But if you can accept some limitations, both virtualization apps run OS X very nicely.
Both of them make it simple to virtualize Mountain Lion, using either the installer file itself or the Mountain Lion recovery partition. Unfortunately, both suffer from the same shortcomings: You'll find that an OS X virtual machine has much less power than the Windows equivalent. You can't accelerate 3D graphics. You can't drag and drop files between the virtual OS and the real OS. You can't run a multi-display full-screen virtual OS X.
Parallels does one thing when running OS X that Fusion does not: You can copy graphics to and from the virtual OS X installation (Fusion will only handle text on the clipboard).
If you have an urge to get your toes wet with Linux, both Parallels and Fusion make it easy to do so. Parallels makes it a touch easier, though, as you can install Ubuntu (not to mention Chrome, Windows 8 preview, and Android) directly from the Parallels itself; Fusion requires you to find and download the disk images yourself.
Fusion now supports OpenGL acceleration in Linux, matching what you can do in Parallels. I tried some simple OpenGL games in Ubuntu 12.0.4, and they ran reasonably well in both. (I was unable to find an Linux-friendly OpenGL benchmark that would run in both virtualization apps.)
Integration with Mountain Lion
Both programs allow you to run Windows apps in full-screen mode, but they do so in different ways. That's because there are actually two ways apps can run "full-screen". In the first, the program's window simply expands to fill up all of the visible screen space.
In the second, the app not only takes over the entire screen, but it also forms its own virtual desktop in Mission Control. (Apple's own apps go full-screen in this second sense.) If you look in Mission Control when you're running Fusion, you'll see that each Windows application appears on its own, just like any OS X application. With Parallels, all of those separate app windows are lumped together with the Parallels icon. (If you open the Command-Tab task-switcher, though, you'll see separate entries for each Windows app in both Fusion and Parallels.)
Fusion and Parallels use a mix of these two full-screen modes, depending on which OS you're virtualizing and the number of monitors you have connected to your Mac.
If you run an OS X virtual machine on a single screen in Parallels, it'll fill that one screen but won't get a desktop of its own in Mission Control. But if you run Linux in the same mode, it will. Run a Windows virtual machine under those same conditions, and you can choose (via a toggle in the virtual machine's options screen) which mode it will use. Fusion makes the single-display scenario simple: You get OS X's true full-screen mode, complete with its own Mission Control desktop, for OS X, Linux, and Windows.
When you hook up more than one display, both programs let you toggle between using all of those displays in full-screen mode or just one. If you set Fusion to use all displays then run Linux or Windows, the virtual OSes will take over all of the screens and create their own desktops in Mission Control; OS X uses up just one. Parallels handles Linux and OS X the same way; if you're running Windows, you can choose to run it in true OS X full-screen mode (a Mission Control desktop is created) or just have it fill all of the displays.
In Linux particularly, Parallels handled the multiple screens poorly: It used only two of my three in full-screen mode, and those two appeared as one ultra-wide display. Fusion used all three, and each was treated as a separate screen.
Despite these disparities, both programs actually handle full-screen modes better than Apple's own apps when you have more than one display. Those apps fill one screen and leave the rest blank. Fusion even offers a cool mini toolbar (when running Windows) that lets you drag the full-screen window to any of your other displays.
Both apps also now work with Notification Center. Fusion will use it to send Fusion-related messages, such as a notification of an available update. Parallels goes farther: It'll notify you about updates too, but also when you do things such as sending special keystrokes to a Windows virtual machine.
In theory, Parallels will also pass along messages generated by Windows 8's new toast notifications technology. However, in testing with Messages, a supposedly toast-enabled Metro app that ships with Windows 8 (not the IM client that ships with OS X Mountain Lion), I was unable to get these to work. Given that Windows 8 isn't shipping yet, and that Parallels has stated that full Windows 8 support isn't yet complete, that failure isn't surprising.
Neither Parallels nor Fusion offer in-app settings to control which notifications you see; you'll have to use OS X's Notifications System Preferences panel to fine tune their behavior.
If you wish, both programs will also integrate Windows apps into OS X's Launchpad. In Parallels, you can add any individual Windows program to the Launchpad by Control-clicking its Dock icon and choosing Add to Launchpad, as you would with any OS X app. Fusion has an option to show Windows programs in Launchpad, but it didn't reliably find all my Windows apps.
Parallels 8 has some other Mountain Lion-specific features, but one in particular caught my eye: It adds a new Open in IE button to Safari's toolbar.
This button comes courtesy of a Safari extension that's installed when you install Windows, though you're not asked about it during that process. If you do a lot of work with cross-platform testing or development of websites, the button is a great timesaver; one click, and you're looking at the current Safari page in IE for Windows. (It's easy enough to disable if you don't want to use it, but I would prefer to be asked before programs modify other programs during installation.)
Parallels also supports some Mountain Lion gestures, including pinch to zoom, swiping between full-screen apps, and two finger scrolling. (Swiping only works when you're in Parallels' Coherence mode (again, when each Windows app is treated just like any other stand-alone Mac app.) In my testing, these gestures generally worked well, though not consistently in all apps. You can't, for instance, pinch out and scroll between tabs in IE, as you can do in Safari.