Is Parallels viable for use in day-to-day Windows development on OSX?
I generally develop applications on two distinct platforms, Visual Studio 2010/SQL Server on the PC and XCode on the Mac. For Windows development I mainly use my speedy Core i7 desktop but I also need to develop on the move and in the evenings, when I want to code in front of the TV instead of tucked away in my office.
Like most Windows developers who own a Mac, I have a copy of Windows 7 installed on it using Bootcamp. This works great as Windows is running at native speed and performs superbly on the Apple Intel hardware. The only downside is having to reboot the machine every time I need to move between OSX and Windows.
This isn’t normally an issue, when I sit down for a development session, it’s normally XCode OR Visual Studio I need to use for a given task, not both.
Recently though, this need for a reboot began to grate on me. Working on the Ride Trader iPhone application, I was finding I needed to make changes to the server-side .NET service to compliment changes I was making on the iPhone code. This meant I was constantly swapping between OSX and Win 7 to change and test code. Also my favourite graphics app, Adobe Fireworks, is installed within Windows and is an expensive app so I certainly wasn’t going to fork out for another license for the OSX version as well!
I began to think about virtualisation, I’d tried running a development environment virtualised using Parallels on my old Core2Duo Mac Mini a while back and it hadn’t performed well at all so I’d given up on the idea at the time. My Macbook Pro though is packing a Core i5 processor and 4x more memory than my Mac Mini so I thought i’d give it another try.
Looking around at the available virtualisation solutions for OSX, the two most favoured commercial options are Parallels Desktop and VMware Fusion. Both are well regarded and both (going off user reviews) perform well. There is also the free VirtualBox solution but I did not try this as the commercial apps offered a few additional features that I felt I could use.
I went for Parallels Desktop 7 as it has a feature where an existing in-situ Bootcamp installation can be launched as a VM from within OSX. This enabled me to keep my Bootcamp partition in case I ever need to run something that will benefit from the full hardware horsepower (Left 4 Dead 2 for example).
Installation & VM Setup
Installing Parallels 7 is simple, just click the installer and….thats it really. Setting up a VM is also very simple and intuitive, if it sees you have a Bootcamp partition present, it’ll ask you if you want to launch it from its own partition or fully import it into the OSX partition as a virtual machine (I use the former).
The VM creation screen also contains links for you to download free commonly used operating system images such as Fedora and Ubuntu Linux, Google Chrome OS and the Win 8 Consumer Preview. Windows can be installed from either physical DVD media or an iso image stored on disk.
Once you create a new VM, there are a variety of options to control the resources allocated to it, the type of hardware to be virtualised and how it integrates with OSX. It offers a coherence mode where Windows applications appear as if they are actually running within OSX itself but I prefer to keep them distinct with Windows running within its own window or running full screen mode as if it were native.
Performance is great on my mid 2010 Macbook Pro! I set my Bootcamp installation to use 2 of the 4 available processor cores and 2.2 GB of the available memory (my Macbook has 8GB), seems Windows requires less to run in a VM that it would on native hardware. The VM launches swiftly (far, far quicker than a reboot) and for most of the time performs as well as running Windows natively. There is the occasional tiny lag to remind you that you are running a VM instead of real hardware but its nowhere near a level that could affect a coding session.
I have been working within Visual Studio 2010, Fireworks and SQL Server within the VM at the same time with no issue whatsoever and these can all be resource hogs. Similarly I have noticed no slowdown within the OSX Lion host.
As a test, I tried running the above setup and then also launched and played a platform game within Ubuntu Linux and the machine coped fine with this, all three OS’s performed as i’d expect them to on a half decent native machine. By this point though, OSX was showing 7 GB out of the 8GB of physical memory in use so I think I’d reached the limit of what would run at an acceptable level of performance.
I’ve not really come across any downside of moving to a VM work environment but one issue which cropped up was, because the hardware that the VM provides is different to the native hardware, several of the registered applications on my Bootcamp installation decided they were no longer registered or activated when running in the VM. This isn’t a problem unless it decides you have exceeded your license allocation, which my Adobe Web Suite did. I spent a frustrating half hour chatting to Adobe support trying to explain that I didn’t want a second license, it was the SAME machine and SAME Windows installation. The guy couldn’t grasp what I meant and kept saying I wasn’t entitled to an OSX license but eventually gave up and reset my license count
Windows itself and Microsoft Office 2010 also needed re-activating, although all apps only needed activating the first time they were run via the VM and were fine on subsequent launches. Still bad news though as it still uses one of my allocated activation entitlements when it theoretically shouldn’t.
In answer to my initial question, is it feasible to use a VM’d copy of Windows as a daily development environment then, yes, absolutely. I’ve found i’ve not had to physically boot into the Bootcamp partition once since installing Parallels. Obviously it won’t work for all the apps, games are a good example, they need full access to the physical hardware to run at their best even though they ‘will’ run within the Parallels VM (I’ve tried).
Its not a cheap solution but shopping around, I managed to pick up Parallels 7 for £45 which, given how much it helps my productivity, was a good buy.
Heres a shot of my Windows 7 copy of Fireworks running magically within OSX: