Personal tools
You are here: Home Blog (English) An obvious answer and why I still won't switch to Mac


An obvious answer and why I still won't switch to Mac

There was one nagging thought that was lurking in my brain while I wrote my last post that finally condensed into a fully-formed idea: you should use the platform that has everything the platform you develop for has.

Yes. It's that simple. I am embarassed, in fact.

If you are going to code for Windows (and I am deeply sorry for you, if that's the case), it makes perfect sense to use the Visual Studio toolset. It will help you make the most out of Windows (which is not much, anyway) and will make it easy to add visual glitz to your code that will never run on anything but Windows. Visual Studio will make it easy for you to write Silverlight code or stuff that runs with DirectX 10. You will be able to test your code against your SQL Server databases. You simply can't do it on a Mac or on a PC not running Windows. It's obvious, but it eluded me. Windows is, by design, the ideal platform to develop for Windows because if you don't develop under Windows you may be tempted to do things in a portable fashion and that's a no-no by Microsoft's book.

You also cannot do proper development for Mac unless you do so on a Mac. You could, in theory, code against GNUStep and hope the code compiles and runs on a Mac (pretty sure it will, but that's only me and my optimism) but it would not be a real Mac application with the added charm the use of "CoreEverything" will give you. It would be a dull Mac application that happens to run under other OSs competing with snazzy Mac applications that run on every computer a Mac-only user will ever care about.

The same happens if you are targetting one of the more "traditional" unix-like OSs like Linux or Solaris. It's painful to develop code that runs on Unix from Windows. It's slightly less so to do it on a Mac (I do it sometimes). The way I use to cope with Windows is by installing Cygwin and, effectively, turning it into a Linux box with a Windows kernel. Scary but neat, in a sense.The same pain is present on the Mac: your desktop is very similar to the server you target, but some things are different and reside on different places. On both, I have to discover what libraries and versions have to be installed on the server and sort through any differences between the development environment and the target machine. It would make a lot more of sense to develop on the real thing. Specially since the real thing makes a decent desktop platform too.

So, it finally made sense. You have to develop on the platform you target. If you build Windows stuff, go with Windows, If you develop for Mac, by all means, buy one (they are gorgeous) and if you target BSD, Linux or Solaris, for your own good, use it. 

And, since I don't target MacOS (I do server stuff that usually runs under Linux) I won't buy a Mac for work anytime soon.