Hybrid Operating Systems
Maybe you have listened about virtual machines (VM), if you are a windows guy, it’s common now to use VirtualPC to run another version of Windows, or even if you are Linux guy you could run Windows using VirtualBox.
Now with every new generation of computers (processors with two or more cores) it’s common for a power user to virtualize an operating system (OS). Virtualization software it’s getting more and more complex and the integration gets better with each release, for both sides: the commercial OSs and even for the open source community.
But, What is a Hybrid Operating Systems (HOS)? An HOS is a computer running the base operating system, and one or more OSs at the same time using a virtual machine.
To buy a capable computer for a power user it’s not a choice it’s just mandatory to get a decent machine with tons of memory (the top for 32bits computer is 4GB of memory), and a huge hard disk. For a developer it’s even more convenient; the more memory you get the more OSs running at the same time you will be running.
Mac OS X: A solid *NIX platform with the best user experience natively!
If you use Windows, you can install another Windows OSs (instead of use dual boot), and even a Linux distribution (I like Debian or Debian-based distributions), if you use Linux well, you can do the same, but if you use a Mac you can get the best of the worlds “natively” in the same computer, a solid BSD system with a gorgeous user interface, with all the application you don’t have on a “new” Windows-PC , if you need Windows you can install using Boot Camp and have the best of this operating system, you can use this partition for a double booting and you have all the advantages of a native powerful PC (specially for games) and when you are working with your Mac OS X you can start a virtual machine to use all the application you need from the Windows world, isn’t it beautiful?.
In several web pages mention the possibility to start Leopard (Mac OS X latest version) on VM on any OS, but I can guarantee that some drivers are missing and just will not work the way it’s designed, without mentioning the legal issue.
Best base OS for Multi-Platform Programmers.
Now talking about developers, for a good developer you don’t have boundaries in developing, you can program a PIC microcontroller with 8bits word, two levels of stack and one accumulator or even program a very high level scripting language. As a developer I do not recommend to engage for the eternity (not even for a while) with a specific language.
The best scenery for a professional developer using several platforms is to get a Mac OS X and use Linux and/or Windows on VM, there are two native options in the Mac OS X world: parallels and vmware. I've been using Mac for the latest months and I was able to test both programs, I can conclude: Parallels is the best. The advantage for vmware is to use both cores of the processor, but that’s a disadvantage, you must not let Windows use the two cores, because when it freezes makes your Mac so slowly, and vmware it’s not well integrated as parallels is, even with the last version using the coherence-like mode cloned from Parallels.
There is one annoying feature on vmware that I hate when I'm running Linux, you must click into the window to grab keyboard focus, instead of just click on the title window to set the focus, so if you need to move your mouse and keyboard focus on another window you must press a key combination to “get out” of the window, the other bad news is the keyboard re-map that Parallels integrates. On Windows world you use Ctrl+C to Copy on Mac and you use [Apple]+V to Paste, if you are switching from Explorer to Finder applications you easily get confused what key-combination to use, and it’s frustrating, with Parallels I keep using [Apple]+anything, an additional note is that if you press left-[Apple] key you get the Window start menu, if you press right-[Apple] key you get the menu option key, I like that.
Finally, if you get a Mac you get the best user experience and a solid platform, you can use Windows fully integrated with Mac with excellent performance and without rebooting, also you can install Linux, to get the 3 most popular OSs on the market running parallels on your system.
Talking technically. You can run Xcode natively to program iPhone applets, or use it to program Mac OS Applications using Objective C, you can also run applications like Apache Web Server, MySQL, PostgreSQL and use any language using MacPorts or fink to compile or use a certain applications for example Java, C/C++, PHP or Ruby, you can install Boot Camp to run Windows natively on Mac and use a high-demanding application like games, you can stay on Mac and run your Boot Camp partition to use Visual Studio .NET and SQL Server and program C#, Visual Basic.NET, TSQL. If this is not enough for you, you can install Linux and run all the Open Source applications without porting (and waiting someone do the dirty job), and the best part, you can use your favorite distribution (I like Ubuntu server, it has a LAMP solutions already on the installation, and without GUI), you must make your development environment as close as the production environment, and this is just perfect for the deploy phase on the developing cycle.
If you’re thinking to buy a new computer, think twice, Mac is getting a real option for professional developers.
[Updated 12/05/2008 - Gramatical fixes, thank you to J. Sigler]