Craig Hockenberry, developer of fine applications such as Twitterrific and other goodies over at the Icon Factory has called on developers to join his crusade to convince Apple to support virtualization on the desktop.
Currently, Apple’s licensing restrictions for the Mac OS prevent the desktop client from being used as the guest operating system in a virtual machine. Because of this limitation virtualization tools such as VMWare Fusion or Parallels Desktop prevent you from installing the MacOS into a virtual machine.
This limitation in purely for licensing compliance. With the release of Leopard, Apple has modified the software license so that virtualization is allowed for OS X Server. Both VMWare and Parallels have betas that allow installation of Leopard Server in a virtual machine. This relaxation of the restriction for servers is a step in the right direction. We may even put that to use on our intranet here at RogueSheep.
Still, I believe that nearly all developers can benefit from virtualization of the standard MacOS. Craig makes excellent points about testing in various versions of the OS and easily having parallel installs of your development environments such as Xcode. In our work, we run into even more situations on a regular basis that I wish we could use virtualization for.
We often have multiple projects in progress for several different clients or our own in house development. Frequently, work for a particular client will require all manner of supporting frameworks and libraries as well as specific configuration of InDesign, InCopy and the various Creative Suite applications to enable the proper operation of a workflow environment.
Many times as one project is winding down, a new project is beginning. Sometimes the components required for two projects that any one of us happen to be working on at one time will conflict. Other times the pain comes from just having to juggle the configuration of the development environment and supported applications when switching contexts between projects.
If we could virtualize the MacOS, each project could start with an image that was prepared with our needed development environments and configured properly for the system that is being developed. Only one person would have to do this configuration and the result could be shared with all members of our team. When any one of us was forced to switch projects for a quick bug fix or consultation, it would be as simple as launching the appropriate virtual machine. The benefits to our work and our clients, Apple’s customers, I think is clear!
I’m not going to claim I know the exact reasons for Apple’s restrictive licensing. I will suggest though that I would be absolutely fine with requiring Select or Premier membership in the developer program to gain this support. If Apple wants to work with VMWare so that the only desktop OS that will install virtually are those downloaded as assets from our ADC benefits, I’m game.
I chatted briefly with the VMWare folks at MacWorld this year. They said they would love to add support for virtualization of the standard Mac OS. They encouraged all of us that need virtualization to contact Apple and let them know about our needs. Personally, I’ve done just that.
If you are developer using a Mac, I urge you to read Craig’s blog posting and then file your own bug, referencing the bug he notes.