Why developers need a Mac

I am by no means an Apple fan. For one thing, I find Windows (and Linux) stable and fast, so you are not going to hear me argue that my computing life was transformed once I made that Switch (with a capital letter). Admittedly that is partly because I am familiar with how to fix and tune Windows and remove foistware, but it is not that hard. For another, I am not an admirer of Apple’s secretive approach, or the fact that most requests for comment from journalists are responded to with silence. For a third, I dislike the notion that all apps for its popular mobile platform must be distributed through the Apple store and subject to a fee, now extended to in-app upgrades and subscriptions as well as initial sales. There is also much that I admire about Apple’s platform, but I hope I have convinced you that I am not so bedazzled by the company that I am unable to think coherently about its products.

Nevertheless, I have run a Mac alongside Windows for years now, and I find myself needing it increasingly. Here are four reasons.

The first is that sooner or later you will need to build or test an app for the Mac or, more likely, for iOS. You can only do so using a Mac (leaving aside the exciting world of the hackintosh). This is because Apple only provides the iOS SDK and simulators for its own operating system.

As an aside, I recently spoke to Keith Varty who is evangelising Windows Phone development at Nokia. I asked about the issue of Visual Studio only running on Windows, was that an obstacle for developers using a Mac? He pointed out that it is the same in reverse with Apple, you need a Mac to develop for the iPhone. In fact, it is easier to develop for Windows using a Mac, thanks to the existence of excellent PC emulators, than it is to develop for a Mac using Windows. In any case, special rules apply for Apple.

Second, other than in the most closed internal environments, some of your users will have a Mac or at least an iPad or iPhone. A few years back both developers and system administrators could get away with a deliberate ignorance of Apple computers, saying they are “not supported” or “untested” or just “I have no idea.” That is no longer acceptable (if it ever was) and it is important to test apps on a Mac where that is appropriate, as with web or cross-platform Java or Adobe AIR applications, and more generally to get a feel for how things work on a Mac so that you can respond intelligently to users.

Third, in many areas of development Macs are now dominant. This means that Windows-only developers may be disadvantaged. Today, for example, I was researching Sencha products and came across this:

Yes, to get the preview developer tools for Sencha Touch 2, you need a Mac. No doubt Windows versions will follow, but there are times when you need a Mac just to keep up with the latest technology.

Fourth, and this is the most difficult point to make, it is valuable to spend some time on a Mac to avoid bad assumptions about usability. One example that comes to mind is version control. On Windows there is no problem using Git, or Subversion, or any number of systems including Microsoft’s Team Foundation Server installed either locally or on its own server. There is some setup involved though. On a Mac with the latest Xcode, you will find a checkbox in the new project wizard:

It is built-in. There is nothing more to do other than check this box. And yes, I know it is pretty easy to use Subversion or Git on Windows – though I would never describe a Team Foundation setup as trivial – but I am talking about the usability of a single checkbox. If you are thinking about the design of your own UI then spending some time on a Mac is though-provoking and likely to be beneficial.

By the way, some other parts of Xcode are less usable than Visual Studio so do not read too much into this example!

Another example which comes to mind is installing a web server. Windows has IIS, which is a good web server, and you can enable it on Windows 7 by going to Control Panel, Programs, Turn Windows Features on and off, and then waiting while the dialog populates, and then checking which bits of IIS you want to install:

Not difficult, though the intricacies of which Application Development Features you need may require some research. But here is how you set up Apache on a Mac. Go to System Preferences, and check Web Sharing. Apache is now up and running, and on my Mac Mini it started instantly:

I am sure there are many more examples, and even examples where Windows has better usability than then Mac (I miss the thumbnail previews in the task bar) but my point is this: it pays to have experience beyond Windows from which to evolve your own user interface ideas.

With MS’ assets I am sure there are no sane technical reasons for their not being Mac versions of Visual Studio (or Access, SQL Server etc.), only political ones: MS would doubtlessly prefer to lose software revenue than risk losing a Windows sale.

See a Mac is a ‘BSD’ with a UI focusing on productivity or better said simplification. Why not. This is just normal I think. Mac is pure but ‘complete’. I don’t why it makes me productive but as long as it does, I don’t care. On the desktop after 20 years the challenge is about fine tuning the last 2% if not less.

The devices change with the people and not the other way around, you don’t change the path – you take the right shoes to walk on it.

As a long time user of Windows and Linux, some 20 years, I switched to a MBP 2 years ago. Today, I own three. The principal reasons I use a MBP is hardware and firmware. The keyboard and glass touchpad are unrivaled. And video and sound just work…and work well. As a developer, the unix terminal application makes for an ideal developer laptop.

That said, Apple software sucks, often much more than Windows software. The bugs are too numerous to detail. My favorite scenario is using an Apple product, thinking it’s perfect, only to run into a major bug, then discover the whole world is suffering through the same bug. After 2 years, I have enough Apple bugs to write a book on.

Apple software is often crap, minimalistic (which I like) and bug ridden. Clearly, kids out of college (not unlike MS) are writing this software. And it shows. But, then, most people don’t notice, principally because they purchase over-priced laptops to email and surf (for which both Apple products absolutely suck!).

I was a mac user from 2007 to 2010, I dropped the mac, It slowed me, It was a mess with all the walled garden that have that platform, it is not flexible, Now I hate it.

But after sometime I went back to Linux and Windows 7 and now I feel comfortable really, I don’t feel like in jail anymore. I don’t miss mac and their jailed products, I do my development and computer needs freely the way I like. I own an android tablet and an android cell, No thanks to the jails of iPhone and IPad.

Mac is for the average joe that feels he have to drive his life with style and fashion plain and simple, good for them but not good for me.

my opinion of reasons are different, i choose hardware by platform. should i be needed to build iOS app then i have to use a Mac, but if i were to develop UNIX app, then either a Mac or PC will suit me.

Windows differenciator is compatibility: it work with the most software and hardware. If you don’t know what to choose, get a windows machine. Everything work on it.

Mac differenciator is design and usability. If you want a computer that look good, and that’s easy to use, buy a mac. But beware, its gona be expensive.

With that said, it logical most people buy windows PC: it run everything and its cheap. It logical Apple make a lot of money: it get all the high end market because nobody else is able to make stylish computers.

Javawerks – Isn’t it interesting that some things simply do not change. Linux is the absolute winner form the perspective of the overall progress, but it started at very fundamental level.

For me the Apple ‘Run’ express a lot more the shift to more easy to use devices especially at home and at work. The personal device will be the tables. This is my guess. The move can come of course when the personal device moves towards the bring in concept at work. My guess is the tables will be introduced this way to companies, with a clear responsibility on the user side.

Very good point also no wonder why many programming tutorials and video tutorials are done on a Mac.

Dzone was probably not a very good choice for posting a link for this though, as it is infested with die-hard Windows and Linux fans, and they thumbs down immediately when they see something which they don’t use.