I've worked on both Mac and Windows for awhile. However, I'm still having a hard time understanding why programmers enthusiastically choose Mac OS X over Windows and Linux?

I know that there are programmers who prefer Windows and Linux, but I'm asking the programmers who would just use Mac OS X and nothing else, because they think Mac OS X is the greatest fit for programmers.

Some might argue that Mac OS X got the beautiful UI and is nix based, but Linux can do that. Although Windows is not nix based, you can pretty much develop on any platform or language, except Cocoa/Objective-C.

Is it the applications that are only available on Mac OS X? Does that really make it worth it?
Is it to develop iPhone apps?
Is it because you need to upgrade Windows every 2 years (less backwards compatible)?

I understand why people, who are working in multimedia/entertainment industry, would use Mac OS X. However, I don't see what strong merits Mac OS X has over Windows. If you develop daily on Mac and prefer Mac over anything else, can you give me a merit that Mac has over Windows/Linux? Maybe something you can do on Mac that cannot be done in Windows/Linux with the same level of ease?

I'm not trying to do another Mac vs. Windows here. I tried to find things that can be done on Mac but not on Windows with the same level of ease, but I couldn't. So, I'm asking for some help.

  • 118
    Do programmers enthusiastically choose Mac OS X over Windows and Linux? I'm not sure about the premise of the question, since I've never known one that did. The only programmers I know who use OS X are those developing iPhone apps. – Carson63000 Feb 25 '11 at 0:36
  • 17
    @Carson63000: There have been a lot of former Linux users switching to Mac OS X in the past 5 years or so. I also happen to be a programmer who uses OS X, and I'm not an iPhone developer. (Granted I've been using Macs for over 15 years, but still.) – mipadi Feb 25 '11 at 1:06
  • 28
    @Carson63000: Every time I go to developer conference or hackathons, I only see macbooks. Probably 5 macbooks to 1 windows laptop (rarely see linux nowadays). These events aren't necessarily for developing the next iPhone or Mac apps. Even when I go to Android conference, all I see is macbook. I ask people at those events why they use macbooks, and most of them usually think it's just "cool" to have macbooks or don't know that Windows can do the same thing or even better. I get excited when I see Linux, though. Linux on lenovo laptops ftw! – codingbear Feb 25 '11 at 1:51
  • 26
    @codingbear: Perhaps the people who end up at conferences are more often the marketing, or more customer-orientated staff who tend to have the "cool" stuff. Most coders I know hate Macs, some don't, but there are fashion victims in many walks of life. – Orbling Feb 25 '11 at 2:08
  • 8
    -1. Reading your comments on some of the answers, I don't get the feeling that any answer would be acceptable to you, so why did you ask the question? – jprete Feb 25 '11 at 6:19

24 Answers 24


I've been using MacOS X for about half a year on my dev machine and I definitely wound not recommend it to developer, other than iPhone/OSX developers (they don't have a choice, do they?).

I've replaced OSX with Ubuntu. Apparently I'm not the only one switching from OSX back to Linux.

All the tools you take for granted in Linux are either non-existent or painful to get to work on OSX:

  • installing open source software: if you're lucky there's MacPort for it. Installing MacPorts feels like Linux 15 years ago. It downloads the package and compiles it. No binary packages. Want Qt? Reserve 5 hours for compilation. If you're not lucky, there is no MacPort for software you're looking for. Then you have to download source and compile it (welcome to 1980's). Sometimes compilation instructions for OSX 10.5 will work on 10.6, sometimes they won't.
  • to make things more interesting, there are other alternatives to MacPorts, like Homebrew and previously Fink. They are not compatible at all with each other, and using more than one of them at time guarantees total chaos and rendering your OSS unusable.
  • multi-screen support: hey, looking for your IDE's menu? it's on main screen, not the one you're working on. You can get lame "solution" for that, called SecondBar. It will be ugly, unresponsive and at times will display bunch of "N/A" instead of menu. But it's OSX so who'd care about ergonomy when you can have eyecandy. I mean, if you'd like interface designed about ppl who care about HCI, you'd choose Linux or Win7 anyway. (Update: this seems to be finally fixed in Mavericks, even though last 2 years I've been told numerous times that it would contradict "the Mac way").
  • decent terminal: you have few choices, the default Terminal.app, the iTerm and dozen others. None of them has full feature set (comparing to default consoles in Linux), each of them has at least one of the problems (like messed up line wrapping, no tab support or problems with UTF-8).
  • GCC 4.2 is included... but wait, why doesn't it understand GCC 4.2 x86_64 flags like -march=native? As pointed by Jano, it's a bug. OSX only bug, to be exact. But on OSX, unlike on Linux, you cannot expect Apple to actually backport the fix and release it in software update. So you're back to square one — OSX is a niche system, and it makes your life as developer harder, while mainstream systems, like Linux, make it easier.
  • any software that uses X11? OSX now has X11 support. With look & feel totally inconsistent with the rest of the UI. Fugly.
  • want to see normal UNIX directory structure in Finder? No way, that's like magic, a normal user cannot be allowed to see that... You can of course activate that with few cryptic commands executed from CLI. I mean, having "show hidden files" checkbox like in Windows would be just too confusing for macusers...
  • up to date Java — sorry, you can't have that, Apple hates Java and will do anything to prove it inferior technology. Which means keeping it obsolete and not applying any updates. Even if it means exposing their users to trojans.
  • "security? we don't need no stinking security!". MacOS X is the least secure of all mainstream OSes (including home editions of Windows). It has fallen victim of hackers year, after year, after year and it's still the case. Also the myth of OSX not having viruses is not true for at least 5 years now. And it doesn't get better for third party products either:

Mac users running Skype are vulnerable to self-propagating exploits that allow an attacker to gain unfettered system access [...] Skype's other clients, e.g. Windows and Linux, are not susceptible to this vulnerability.

Update: OSX's security seems to go from bad to worse

With the latest Lion security update, Mac OS X 10.7.3, Apple has accidentally turned on a debug log file outside of the encrypted area that stores the user’s password in clear text.

  • 5
    @philosodad: inaccurate? what's inaccurate about fact, that application's menu is on the "main" screen, instead of being on the same screen on which application is open? And no, I don't want to switch main screen each time I switch application, I'm not into that kind of "thinking different". – vartec Apr 17 '11 at 15:54
  • 12
    @vartec: there are several things that are inaccurate in your post. Terminal does not have the flaws you claim it does. MacPorts is not your only choice for OS software (much OS software has .dmg files available, for example, and there's also homebrew). Your link to a bug that you claim won't be fixed shows the bug as resolved. You can show hidden folders with a simple flag change and see your structure, or you can open /var from the terminal and browse in the finder. And the fact that security experts want a mac (which is what Pwn2Own measures) doesn't actually say anything about security. – philosodad Apr 17 '11 at 16:06
  • 4
    @philosodad: sorry, you apparently can't tell between reality and "reality distortion field". As for the bug in GCC, yes it was resolved in GCC 4.3. Which isn't included in any software update for OSX 10.6. In other words, bug in OSX is still there. Homebrew? Sorry, we're not in 1990's. To see dir structure is "simple flag change"? More MacTruth, in reality it requires running cryptic commands from CLI. – vartec Apr 17 '11 at 16:25
  • 16
    @vartec I've read your many other comments on this question. Clearly, you have a personal bias against macs and anyone who doesn't hate the OS like you do. Basically, it boils down to this: what you wrote here is factually inaccurate on at least one count, and pretty much FUD on the security front. I don't think this discussion is productive, and I'm ending my participation here. The -1 stays for factual inaccuracy. – philosodad Apr 18 '11 at 5:18
  • 5
    @philosodad: "inability to write short scripts, use basic terminal commands, or install one of the many free automator apps that will put this a right-click away does not translate to a failure of the OS" funny, if I wouldn't know the context, I'd say it's a quote from some GNU fanboi from early 1990's. – vartec Sep 2 '11 at 15:26

Disclaimer for comments: I use what I've determined to be best for me. Those reasons are what I've listed here. Finding the "greatest fit for programmers" in all situations is impossible, and I don't think anyone bases their choice on thinking they've found it.

It's a Unix-based OS with a great user interface installed on great hardware. Hardware that is getting ever-cheaper as Apple grows and uses their buying power to secure lower and lower prices of great components.

I use Mac because:

  • Unix-based OS
    • Terminal is a bash shell with all the standard Unix utilities
    • Built-in SSH!!
    • Comes preloaded with software that works great with Unix: SVN, PHP, Apache2, etc.
    • I find a Unix filesystem so much more comfortable to use in development.
  • Great UI - In my humble opinion, you can't beat the usability of a Mac. I love the Mac-specific apps I use daily - Mail, Adium, Textmate
  • Great OS - Can't beat the install of (most) Applications - drag and drop. The /Library folder is well organized and easy to find what I need if I have to dig into preferences, copy an application's support files, install a new Preference Pane. Speaking of System Preferences - another great feature of Mac.
  • Great support for other apps - IntelliJ IDEA is as good on a Mac as anywhere. Skype. Chrome. Firefox. Adobe suite.
  • Great hardware - I work on a $1200 13" Macbook Pro (external 24" monitor at desk). Cheaper than my coworkers on high-end Windows desktops and I'm not running into processing issues or memory issues (none of us really are these days). And you just can't beat the quality of an Apple laptop (developing on laptops is a different question but I can't live without one - wire-free for meetings, private Skype calls, or taking my work home exactly as I left it. And 10 hour battery life!).
  • Lastly, I don't develop on any Microsoft-stack technologies, so I don't feel limited there.

I don't think there are any things I can't do on Windows. The above is a list of things that, as a sum, just make Mac the preferred option. If you are looking for singular things, there are a few tasks that I feel I can simply do more easily on Mac:

  • (As mentioned above, probably the biggest) Terminal > Putty + Cygwin + Powershell
  • Migrate everything to a new computer
  • Uninstall applications or install multiple versions of applications (browsers, usually)
  • 41
    I'm still not convinced on the "hardware" point. Apple's buying power doesn't really go into passing on lower prices to consumers - it goes into subsidizing the cost of almost giving the OS away (if you're running on their overpriced hardware). – Anon. Feb 25 '11 at 1:31
  • 79
    I disagree with "Great UI - In my humble opinion, you can't beat the usability of a Mac." I used a mac for 3 years and after 3 years I still could not stand using it, it's the most frustrating thing to use. The biggest issue with the UI is the fact you can't fully maximize a window, and if you miss-click you end up at the desktop. It's unproductive, Linux/Windows got this concept right, OSX has failed. – Phill Feb 25 '11 at 2:14
  • 7
    @codingbear This isn't the place for a holy war argument, but I'll address your points briefly: 1) UI is subjective, but you're pitting a free software company against a 300-billion-dollar company, renowned for design, with hundreds each of designers and developers. 2) Mail, Adium, Textmate, are Mac-only. Of course I know the others are on Windows, that was the point. They are as good on Mac as anywhere. 3) No memory problems, in fact, less than Windows with same RAM. 4) Hardware? I'd check the $1200 MBP again. You can't compare a budget computer to a MBP. – Nicole Feb 25 '11 at 2:38
  • 9
    @codingbear: Nowhere near a fair comparison. I can buy a desktop machine with similar specs for cheaper, too. That doesn't mean I end up with anywhere near the same computer as the MBP. Battery life, size, weight, and all those other factors are important. The specs also aren't exactly equivalent. You might be paying 1 or $200 more for the Apple "brand", but consider what you get for that. Excellent service for one thing. Just today, I took my 4 year old MBP back to the Apple Store to get a defective component replaced FREE OF CHARGE. I never purchased an extended warranty. Try that with Dell. – Cody Gray Feb 25 '11 at 5:47
  • 23
    As mentioned further up in the thread, this isn't the place for a holy war argument. If you want to debate pros and cons of Apple or Dell machines, please take it to chat. Thanks. – Adam Lear Feb 25 '11 at 18:20

For me the main benefit over Linux is that it all just works together, especially on a laptop. Video, wireless, suspend/resume without having to find and configure the right drivers, determine what chipset you've got etc. All that might be doable with Linux, but it's a hassle when you just want to get some work done.

  • 34
    Linux is great for those people who know what they are doing ;) – codingbear Feb 25 '11 at 1:47
  • 8
    @matt: Configure an IP printer and you may have to go find driver(s), depending on the product and model you may have trouble running HD video (13" MBP, two generations past). Safari crashes often, especially when I have 50+ tabs and 16+ instances open. Too much you say? Firefox can handle it no problems. But FF on Mac eats memory like nobody's business. Also one serious drawback to Macs: it's a unix-like system but it's a lot harder to "look under the hood." For development, getting your hands dirty and learning a lot, Linux is best, bar none. – aqua Feb 25 '11 at 4:00
  • 36
    @codingbear: With a job and family, you learn to appreciate when things just work. – LennyProgrammers Mar 3 '11 at 12:01
  • 45
    @aqua Don't get development confused with system administration. I've a developer and frankly I don't give a damn about fiddling around with system settings. – Kirk Broadhurst Mar 3 '11 at 12:14
  • 6
    Don't know why people keep talking about bad experiences with Linux and Wifi. I've never ONCE had an issue with Linux + Wifi – Darknight Aug 25 '11 at 22:40

Do not underestimate the hardware.

Once you got used to the trackpad you do not want to go back! Two fingers and you scroll in any direction...

  • ... but with the classic 80 characters per row rules for UNIX development, what directions do you need to scroll besides vertical? – vstrien Mar 3 '11 at 12:18
  • @vstrien, I don't know about you, but I use browsers like Chrome a lot. – user1249 Mar 3 '11 at 14:12
  • 12
    Personal preference for sure. I despise the Mac trackpad. It's fine for the first hour of use or so, but after that it starts to get really annoying. If I'm going to use a MacBook for any period of time, I plug in a mouse! – Brian Knoblauch Mar 3 '11 at 14:32
  • 4
    It has a downside, though. I get really frustrated when I can't click by pushing down the touch-pad on my thinkpad. – Ferruccio Apr 6 '11 at 0:03
  • 1
    @Brian, is that the new trackpad without buttons or the old one with? – user1249 Apr 17 '11 at 18:59

Developers or not, experienced or not, intelligent or not most people will favor aesthetic beauty over substance. Macs are good but completely undeserving of the kind of support they have. It's clear that there are no compelling reasons to use a Mac over a PC running Linux or Windows but people try extremely hard to find some to justify buying one. I don't understand why people just don't say that they bought a Mac because it is pretty and fashionable. There's nothing wrong with that. I will even admit that I use Linux partly because its fashionable among developers. We all have a natural leaning towards what we believe is "cool".

  • 5
    -1 It's anything but "clear" that there are no compelling reasons. I am not quite sure how you are so confident that you know what is in the head of buyers with whom you obviously don't share the same taste (you mention you use Linux). – Nicole Apr 5 '11 at 17:22
  • 5
    Under this question, there are numerous good reasons to get a Mac that have nothing to do with fashion. There are also good reasons not to get one. Which are compelling is up to the individual. The reason people don't say they bought a Mac because it's pretty and fashionable is that those are not the usual reasons. (I prefer Linux because I feel more at home there. I always feel more like a visitor on MS Windows. The fact that it's fashionable among developers is nice, as it means there's more stuff available to me.) – David Thornley Apr 5 '11 at 20:16
  • 1
    +1 aesthetic beauty is definitely a compelling reason along with user experience. – Korey Hinton Jun 26 '13 at 17:19

Mac has all Unix features with awesome UI.

  • I have never understood why people say this, the iPhone has a great UI but OSx is very average. It pays more attention to detail but I don't think its better than Ubuntu. – toc777 Apr 5 '11 at 16:19
  • 14
    UI is subjective. Personally, I have no great preference among GUIs for Ubuntu, Mac OSX, or Windows 7 (the OSes I use frequently), but I'd rate Mac and Linux higher in UI because of the more usable command line and command-line utilities. Apple, unlike most other companies, has continually devoted lots of research into making its UI good, and it would be surprising if they didn't have a UI that lots of people preferred. – David Thornley Apr 5 '11 at 20:03
  • 8
    People always say this that Mac has all the UNIX features. It does and it doesn't. The fact is that Mac UNIX is non-standard. Every open source package needs to be built differently on OSX than on Linux. configure; make; make install always has gotchas on OSX that don't exist on Linux. Homebrew is probably the best package manager on OSX, but it still sucks. For development, I take any Linux distro every time over OSX. – Apreche Apr 14 '11 at 11:26
  • 5
    @Apreche I partially see that as a sign of ‘Unix’ developers being ‘GNU/Linux’ developers, actually. FreeBSD suffers from a similar problem: software needs extra packaging/patching because they use GNU/Linux-specific features. – user15803 Apr 18 '11 at 4:23
  • 1
    @AndrewDunn Isn't the OS X filesystem layout pretty nonstandard? You probably mean the kernel is Unix compliant, but that's not the full system and its tools. – Andres F. Jun 26 '13 at 12:25

I was an OS X early adopter and a long-time Mac supporter, but I've come to the conclusion that they still don't make good dev machines, especially not in an enterprise environment.

I'd used them at school and had one on my second desk at work for awhile (rarely used, 95% of my time was on a Unix terminal, but I always liked it when I had the opportunity to use it, which was mostly for graphics manipulation). I finally decided to buy my first Mac (right when OS X first came out). However, in less than a year I got so frustrated with it that I sold it off cheap. The hardware LOOKED beautiful, but felt cheaply made. OS X was an exercise in frustration. MOST *nix stuff I was trying to do worked, but the remaining part was broken in subtle ways. Too many episodes of complete freezeups with the spinning beach ball of doom in Mac apps.

I've continued to/still use one at work on occasion, but really only for Mac specific tasks. I'll bounce back to one periodically to see what the current state of the art is. Java support has been weak and lagging for a long time. It seems like they're just now getting caught up. It keeps getting better, but, it's just painful to use one for dev work compared to either Linux or Windows. OS X repeatedly disappoints, as does the hardware (primarily overheating issues, but over the years I've also had monitors that turn themselves on and off when near radio transmitters, etc. Stuff that "just doesn't happen" in PC land). I hope that one day they will be a good option, but they're just not there quite yet.

  • 1
    it will be very interesting to see if things change with new versions of Java not coming from Apple but Oracle. – user1249 Apr 17 '11 at 19:00
  • I can't say for certain, but based on a rather severe bug (conflict between MS JDBC driver and the JVM) I've been fighting with recently, it appears that Apple has been using the OpenJDK. The same bug that afflicts OpenJDK, also afflicts Mac OS X Java installs, while the official Oracle builds for Solaris and Windows work fine for us. Hope Oracle's Mac OS X JVM comes out soon so we can upgrade these Macs. Earlier JVMs would also work, but Apple in their infinite wisdom doesn't allow one to roll back patches... Argh. – Brian Knoblauch Dec 22 '11 at 13:07

There are three main reason I'm on Mac (specifically Macbook Pro) now for my software dev needs:

  1. Great hardware. It feels great to work on, the battery life is awesome, and the screen is just beautiful. Oh, and the trackpad is pretty nice too.

  2. Unix. It's based on Unix, and it's great for Ruby development. I have my terminal too.

  3. Runs Windows great too. I can use Bootcamp to run a Windows OS natively, or use Parallels to run it in a VM. So for my Windows development, I can do that all too on my Macbook Pro. I suppose if you are hardcore about Ubuntu, you can install that too.


Less headaches when it comes to interpreted languages. Python, perl, ruby, and prolog come pre-installed (as they do on most *NIX systems). Much better UI than many Linux systems, imho. Headaches do occur when trying to build system-specific C programs (anyone tried building their own thread scheduler in C, in OS X? Not fun). On Windows, python, perl, and prolog are not pre-installed. Much of Windows comes with *ware you never use. That being said I don't use a lot of the pre-installed applications on Mac (I don't use Mail, Address Book, Font Book, Garageband, iPhoto, iDVD, iWeb, TextEdit, etc). Macs offer the flexibility of installing Windows, whereas the reverse is not true (no fault of MS... blame Apple, here).

In short, it offers many of the great programming utilities and languages found in Linux distros and leaves the headaches of Windows behind, all while providing a world-class, flexible, UI. But, I'd agree with you in questioning why people would prefer solely OS X for general programming. Not very good for that.

I tend to use whatever is at hand or the best tool for the job, be it Windows, OS X, or a flavor of Linux.

  • 1
    Amen on your last point. Once you know what are the general tools for your development environment, I don't think there is too much difference. People figured out how to install Python, PHP, Sandbox-Apache, etc. on Windows with a great ease now that the advantage Mac OSX has doesn't look as great as before. – codingbear Feb 25 '11 at 1:44
  • 3
    Many of your reasons can be solved in a trivial amount of time on Windows though. Windows does come with a lot of crap-ware pre-installed, but I can just remove it. The interpreted languages you cite can be installed in a matter of minutes. I write a lot of C++ code, so I use VS on Windows. I don't have anything that even approaches VS in terms of quality and ease of use on the MacBook that I type this from. I like my Mac a lot, but I have a much easier time developing on Windows. – Ed S. Feb 25 '11 at 2:48
  • @Ed: I actually do C ("serious") development in a Linux environment. And you're completely right. I was just giving some reasons as to why other people prefer using a Mac for development. Windows does support python and perl (unsure about prolog) but it's not as friendly to the command line (just my opinion). I'm must more comfortable working in a bash shell rather than the Command Prompt, and Macs offer the nicer option. – aqua Feb 25 '11 at 3:47
  • No it's not as friendly on that end of things, you're right. I would love to be able to switch over more of my development work to my Mac, I have just found it really painful. I've been spoiled a bit. – Ed S. Feb 25 '11 at 5:13
  • 3
    Don't use the preinstalled versions. They are obsolete, unpatched and have 'improvements', like annoying pop-up whenever they throw exception. For example Python's community recommendation is very clear: download Python, python.org/download/mac – vartec Apr 7 '11 at 14:10

I can imagine the only reason would be to develop iphone apps. But otherwise OSX is basically Unix......and Unix/Linux is free for most so I wouldn't see any other reason.

  • 5
    Also, MacBook Pro is a rather nice piece of hardware; if your employer can afford you it, why not take it :) You can run Linux on it if you want, too. – 9000 Feb 25 '11 at 0:24
  • 4
    The only reason? – Nicole Feb 25 '11 at 0:42
  • 4
    @aqua The only reason to imagine why "programmers use or recommend Mac OS X" is because they want to develop iPhone apps? That's a reason, but the only reason? Really? – Nicole Feb 25 '11 at 1:02
  • 2
    @DKuntz2: The kernel itself is open source, as are many of the underlying components of OS X -- i.e., not "locked up" at all. – mipadi Apr 20 '11 at 15:09
  • 2
    @DKuntz2: I'm amazed at what people on the Internet will argue sometimes. First of all, the kernel is open-source, and Apple is responsible for most of the major modifications to it. Anyway, you didn't argue that Apple didn't write most of the code; you argued that OS X -- and in particular, the kernel -- is "locked up", which is demonstrably false. – mipadi Apr 21 '11 at 15:29

The fact is that it doesn't really matter.

If you really want to improve your productivity as a programmer, stop thinking about how cool is it to have the windows making all those fancy stuff and learn to use command-line tools, a great scripting language and a great editor.

You will see your productivity increase regardless of the OS you choose.

When you understand that those are the really useful tools you cannot live with, you'll forget about Mac OS fancy stuff and hype.

  • I find windows terminal/CMD is very weak – 465544 Dec 30 '12 at 9:39
  • @Nikhil have you tried power shell? alternatively, a GIT shell (or equivalent) can easily provide you the power of a unix shell for free. – Jose Faeti Dec 30 '12 at 16:21
  • I do have used power shell, but i rarely use it. It has too many different concepts, still use old telnet, No script (By default) Copy-paste feature is horrible. – 465544 Dec 31 '12 at 14:04
  • OS X has both a really good terminal as well as a really good UI, should you need it (and I suspect you will occasionally). – Erik Kaplun Sep 30 '13 at 10:09

Every suffering Apple owner entices others to share his fate, it is a trap :-) Or else, may be the constant negative campaign against Windows however possible has ensured that an average Mac user is always kept in the dark. Also, in reality, Mac OS has been patched regularly (mostly without any advance notice to users.)

It is important to realize that the stability of Mac OS X is due to the proprietary hardware - you cannot plug and test whatever you want, so no hardware is actually untested. Note that there are four or five options of Apple computers, and upgrades are prohibitively expensive - which means there are a few dozen varieties of hardware in the market, that is it. Support is a breeze. Also, in reality, Mac OS X is not bug free or secure

  • 1
    Your first two sentences seem unconstructive. Either delete them, or, if you're being sarcastic, make the sarcasm more evident. (Sarcasm typically works badly in a text-only medium, and particularly on the Internet: no matter how sarcastic and ironic you are on the Internet, there are people who will assume you're serious and agree with you.) – David Thornley Apr 7 '11 at 13:47
  • 2
    @David, I understand your concern. However, it is true that Apple product owners blindly follow Apple, without questioning why. Aren't you old enough to have seen the Apple's original ad from the 84 against IBM? The roles have reversed now, but nobody realizes it. I can remove any hints of sarcasm, and you can bump me down twice :-) – CMR Apr 7 '11 at 14:06
  • 1
    @mipadi, let me guess, you are an Apple user :-) – CMR Apr 15 '11 at 0:38
  • 2
    -1: I think this answer is not helpful. It doesn't address the question, and seems to exist only to insult a group of people with opinions that differ from yours. – philosodad Apr 17 '11 at 15:48
  • 2
    @philosodoad, I disagree with your comment. The question was, "why do programmers use or recommend mac-os-x?", and my answer (or, its gist) was, "because of Apple's clever marketing strategy." My complaint is with Apple, and its attitude towards the industry (remember lala.com?) The Apple attitude is the same since 1984. You can -1 all you want, but you have to stop and think whether or not it is herd mentality. – CMR Apr 18 '11 at 3:07

I switched from a laptop running Windows to a Mac about seven years ago when I joined a UNIX shop that was primarily focused on ANSI C command line apps for Bioinformatics. I could do my work on any UNIX box, so why did I pay for a Mac? Purely subjective preferences. I like the look and feel of Mac native applications more than any of the Linux desktop flavors. I hate Open Office, and I actually like Microsoft Office. Go figure. Macports provides most of the convenience of yum or apt-get for developer tools. It did take a few years to get Valgrind for the Mac though.

I don't make any claim for the objective superiority of OS X over Windows either. However, I have developed a strong personal aversion to Windows. The fact that I still have to think about drive letters on Windows irks me, and over the years I've had a few disasters with damage to the registry and bad application installs. My Macs just seem to require less 'futzing' to keep them running smoothly. I do keep a pretty current Windows desktop machine at home for games and providing support for friends and family. However, I've also had good luck steering my non-techie friends to Mac in the last few years. Again, the only way I can describe the benefit is less 'futzing'.

  • 1
    Haha...yes 7 years ago, Windows was fugly. I experienced similar things you'd experienced, such as the disaster with registry. I used Mac for past 4 years and recently tried using Windows 7. And... I thought.. this is pretty damn cool. You should give it a try when you get a chance. Btw, that weird drive letters still persist! :) – codingbear Feb 25 '11 at 2:59
  • 2
    @Codingbear as I said, I do keep a current Windows machine, so I had Vista and now have Windows 7. Windows 7 does have a nice collection of desktop themes, but I haven't found any features that are personally compelling. I was more impressed by the transition from XP to Vista. I thought it really improved the security model, and I thought Powershell looked interesting. At the same time I was discouraged because Vista made it clear how sloppy a lot of app writers were about gratuitously using Admin privileges. – Charles E. Grant Feb 25 '11 at 4:29
  • 1
    +1 to your comment, I don't get why the popular viewpoint is "Yeah, MS really screwed up Vista but 7 is awesome!" I never thought Vista was that screwed up and had a huge number of improvements over XP. 7 feels like it improved about as many things as it broke (the Exposé features of the new taskbar, for instance). And sloppy is the exact word to describe my general lack of excitement for Windows. – Nicole Feb 26 '11 at 15:42

Some might argue that Mac OS X got the beautiful UI and is nix based, but Linux can do that.

I hear this a lot. Let's see it with a recent example: Gnome Shell vs the iPad, can you see the differences?. First thing, the font on the Gnome Shell is W-T-F atrocious.

Then the icons. The four basic rules of graphic design are contrast, repetition, alignment, and proximity. They tell you basically if two elements are alike. When you look at the home screen of the Gnome Shell, apart from being crowded, you see wildly different icons with irregular shapes, so your mind gets busy wondering what are those and how they relate to each other.

This doesn't happen on the iPad because the elements are aligned on a grid, and they all have rounded corners and a gloss effect (applied by iOS). Obviously, they are elements of the same set, so your mind rests.

Just an example of similar functionality with different execution. This is important because design is not just a coat of paint, appearance is an integral part of the product itself. How you feel can not be separated from how you think (literally). Read Does Form Follow Function? about this.

A common misconception is that Macs are overpriced. This derives from comparing a low end PC with a Mac. If you think otherwise, really try to find a serious comparative on the Internet (here is one). Of course you will always be able to assemble a more powerful and cheaper PC yourself if that's your only criteria, but that's not what Apple is aiming for.

You don't buy a Mac because of its power (nothing matches a linux cluster for that). You buy it because there is an employee with a salary using it, and you want to avoid hardware/software issues. Apple values stability and ease of use over features or raw power. You can argue with this, but beyond personal experiences, they consistently come on top on consumer satisfaction in several countries.

Another virtue of Mac is that you can install nearly anything (KDE and Gnome included). Almost all linux software is available through macports packages. This is an important feature because you can't count on Apple to update Java, GNU software (march=native still bugged in Apple's GCC), and others. OpenGL is probably the more bleeding example since it depends on Apple drivers.

There are also popular desktop apps for all purposes, not only from Apple but from Adobe, Microsoft, Autodesk, and others. And no need for antivirus nonsense because you are on Unix.

Anyway, if you are on a budget, or if you prefer Windows, Linux, or a muffin toaster running emacs, go ahead. There isn't a best OS for everything and everyone.

  • 3
    Just because it's UNIX doesn't mean it can't be compromised. A single clueless user wields the power of millions of mob programmers every time they type 'sudo' :) – Tim Post Apr 14 '11 at 11:55
  • I agree, that's why I said viruses, not trojans. – Jano Apr 14 '11 at 14:03
  • 2
    sudo? pfft. power users run as root. – Erik Apr 16 '11 at 4:27
  • I love macfanbois "solutions" like "you can compile everything yourself", "you can google it" etc. Sorry, I like OS to make my life easier, not harder. – vartec Apr 16 '11 at 17:25
  • 2
    @David Weta Digital, effects for Avatar, uses linux, the company that did Tron Legacy used linux. While traditionally Adobe has released for Apple first, starting with CS3+ they've written their programs for Windows first. You still haven't answered what niche apple caters to according to you. I'm not 100% against their hardware, in fact I believe their hardware is perfectly fine and pretty, but their operating system is useless. – dkuntz2 Apr 21 '11 at 15:33

I've been developing on Macs since 1984, *nix since 1989, and Windows since 1990. Right now, as a consultant, I work on three paid projects, two on the Mac that take about half my time, and one on Linux that takes the other half.

Maybe something you can do on Mac that cannot be done in Windows/Linux with the same level of ease?

I'm not going to address Windows since I don't code for it much these days, but regarding Linux, uh, yeah. Almost everything is easier on the Mac. :-)

Let's take one small area: text editors. I'm an old GUI guy, don't do emacs at all, and know just enough vi to cope with small editing chores.

On Ubuntu, the major options are gedit, kate, and Eclipse. Kate is flaky (I've lost lots of data), Eclipse is very heavyweight, so I mostly stick with gedit. But it's like a programmer's version of MS Notepad: it just doesn't do much. And anything that's not built into the editor that you want to add, like ctags support, requires a lot of screwing around to install and configure and mess with on an ongoing basis.

On the Mac... holy cow! There are innumerable really great options, and they have all kinds of fantastic features. Xcode is powerful, and TextWrangler rocks as a free app that combines all the best features of kate and meld. And in the last ten years, neither has crashed in a way that lost my edits, which I can't say of either kate or gedit.

Actually, the text editors on Linux are so full of general suckitude that when I'm doing Linux development where the underlying libraries are also available on the Mac, I often write the code first on Mac OS X in Xcode, and then when it's working, move it to Linux and write a makefile for it.

I could go on and on. I tried dia for creating diagrams, and it's appalling. But OmniGraffle on the Mac is superb for creating diagrams.

I am a huge fan of open source, contribute to several projects, and have submitted a talk proposal for this summer's Ottawa Linux Symposium. But I also like maintaining my reputation as somebody who writes great code fast. So I want to use the most efficient development tools possible, and those often happen to be on the Mac.

To add a little bit... as a consultant, I get paid for being productive. Screwing around with flaky software comes out of my free time, which I'd rather use for other things, like hanging with my wife, doing martial arts, and learning Italian. My experience, working in parallel on the two platforms since 2006, has been that I spend less time screwing with things on the Mac than on Linux.

  • 2
    1. vi rocks. If you have to use a mouse, go with gvim. 2. Editors on Mac... mmm I dunno. The suckitude seems to be here, not on Linux. Like you said Linux has several choices, gedit, nedit, kedit, kate, Eclipse, netbeans, etc. Mac has... Xcode, TextEdit, TextWrangler (I don't even like TextEdit and Wrangler). On Mac I use vi, on Linux I use vi, on Windows I use... Notepad++! – aqua Feb 25 '11 at 4:02
  • 2
    @aqua: gVim works great on Windows. Unless I'm using Visual Studio, I edit with gVim. – David Thornley Feb 25 '11 at 16:20
  • 3
    Sounds like somebody has never really tried to edit without a GUI. And since when does vim or emacs crash and lose my data...? Don't think I've ever had that happen... Anyway, -1 for asserting that Mac apps don't crash and Linux apps do. Thats just blatant FUD. – alternative Apr 13 '11 at 0:27
  • 1
    @mathepic: The question is about personal preferences, and I provided an honest, candid, and substantive answer based on decades of experience.These include achieving proficiency in vi in 1986. I don't require other people agree with my preferences - I'm not I'm sorry you think my factual statements and opinions are FUD, but so be it. It sounds to me like somebody – Bob Murphy Apr 15 '11 at 17:16
  • 1
    Dang online editor... here's what I meant to say... @mathepic: The question is about personal preferences, and I provided an honest, candid, and substantive answer based on decades of experience which include having become proficient in vi in 1986. Also, I don't criticize other people for having different personal preferences or try to convert them to mine, or accuse them of FUD for recounting factual experiences. It seems you do - you seem like a "my way or the highway" kinda guy. Remind me never to split a pizza with you; I doubt we could agree on the toppings. – Bob Murphy Apr 15 '11 at 17:24

If you're writing iPhone (or Mac) apps, you need a Mac, period.

If you're doing web development, in my experience, Macs are far superior to Windows machines, if only because most of the tools you need are already there. Yes, Linux can claim the same thing. But can you really compare Linux and Mac in terms of usability? Really?

If you're writing Windows apps, you need a Windows machine, that's all there is too it. Of course, between VMWare, Parallels, and Boot Camp, you can just run Windows on the Mac also.

In summary: mostly built-in Unix and web dev tools, great usability, Windows compatibility if you really need it. The best of all worlds. Plus, it makes you look way cooler down at Starbucks than some Dell thing would. :)

  • Two years ago, I was able to write iPhone app on a Hackintosh ... – ohho Feb 25 '11 at 9:38
  • 3
    @ohho: So you still needed the Mac OS X environment. Just replacing the hardware and not the system doesn't change much for developing apps.. – vstrien Mar 3 '11 at 12:15
  • 1
    have to disagree about usability. I am a Windows dev but used to use macs for audio-engineering...until I started using Ubuntu. It used to be a bear, but Ubuntu or Mint make it ridiculously easy to get around. – Morgan Herlocker Apr 5 '11 at 20:16
  • 1
    the first paragraph is stating a fact that is wrong, period. – Display Name Apr 13 '11 at 9:54
  • @Display Name, its not completely wrong. You need a mac to legally create iPhone/iPad apps. It can be done illegally using a Hackintosh or virtual machine but speaking from experience, its not worth the time and effort. – toc777 May 17 '11 at 12:44

It's a beautiful, trouble-free working environment.

I use a Mac as my personal computer, so I know my way around it.

The hardware is fantastic.

I can (and do) run Windows in a VM if I need to, which is nicer than running Windows natively (can make copies of whole machine, etc.).

So what if they're a little more expensive?

  • 1
    Uhm.. that doesn't say anything about developing? Trouble-free developing is quite strange imho: if there really were no troubles you shouldn't have to develop anything for it? – vstrien Mar 3 '11 at 12:13
  • 1
    I think with trouble-free developing the poster means that the OS doesn't get in his way. – Htbaa Mar 3 '11 at 12:26
  • The computer, including the OS, just works. If I need to migrate the complete system to another machine, that's done with a few clicks and half an hour of waiting, and I can go on working as if nothing happened. Of course, this is not exclusive to development, but I want my working environment to get out of the way. The Mac does - granted, Windows machines nowadays do, too. – fzwo Mar 3 '11 at 12:38
  • Once upon a time, my favorite OS was CP/M, because it was no more irritating than any other OS, and used fewer resources. Then I ran into Mac OS, an OS that didn't annoy me (at least not much), and then Unix, an OS that actually helped me do things. – David Thornley Apr 5 '11 at 20:08

Besides loving Mac OS X as an OS compared with either Windows or Linux, I use it because it runs everything. I boot into OS X, but can run Windows 7 (for Visual Studio development as well as desktop application and web application testing) and Ubuntu (for desktop application and web application testing) within Virtual Box. If I used anything else, I'd at least have to have a side Mac in order to test across platforms. Any other benefit is available with Linux or Windows or comes down to personal preference.

  • If you're using Ubuntu and Win7, why bother with OSX? – vartec Apr 16 '11 at 17:15
  • I would use Mac OS X even if I weren't a developer. That's my personal preference. I only use Ubuntu and Windows for testing purposes. – Chuck Apr 16 '11 at 19:51
  • But the question was why developers would use OSX. You're saying that the advantage of OSX is ability too use Win7 and Ubuntu in VirtualBox. Instead you could have native Ubuntu with Win7 in VB or vice-versa. – vartec Apr 16 '11 at 21:49
  • No, I'm saying the advantage is that it runs all three operating systems. With an OS X machine I can run Mac OS X, Windows 7 and Ubuntu on a single machine. That's not possible with another OS. I'm also saying, in my answer to your comment, that I like OS X regardless of its development advantages. – Chuck Apr 17 '11 at 19:31
  • 1
    I do three major types of development. Web development using PHP or Ruby, which requires testing the web application across browsers on all three platforms. Desktop applications built with REALbasic which generally need to run on at least Mac and Windows and sometimes Linux, also need to be tested across platforms. Finally, database development using FileMaker, which needs testing on Mac and Windows. Generally I write the software on the Mac side and test it on each individual platform. – Chuck Apr 18 '11 at 1:10

I see lots of MacBooks at developer conferences too. You know what the caveat is? You need to look at the operating system they are running. Almost every one of them that I see is running Windows 7 on those precious MacBooks. The reason - either to overpay for their hardware because it's cool, or to be able to run OSX those few times when Objective-C is needed and switching to windows for most of their other tasks

  • Or because they like the hardware, and don't mind paying extra for it, or they prefer it slightly, and their employers are paying for it. Even slight improvements can be worth hundreds of dollars to you if you use a laptop all the time. – David Thornley Apr 5 '11 at 20:09
  • This is nonsense. What conferences? People buy Mac to look cool? "a real OS the rest of the time"? See ft.com/cms/s/2/… – Jano Apr 14 '11 at 9:26
  • 2
    Ah, anecdote, the enemy of evidence. – philosodad Oct 26 '11 at 4:14

Because of (in descending order):

  • iPhone/iPad development
  • Textmate
  • Bash
  • / not \ (comparing with Windows)
  • MacBook Air
  • Magic Mouse
  • Mac AppStore
  • Xcode
  • Objective-C
  • I believe you mean zsh and vim :-) – macarthy Mar 3 '11 at 15:13
  • 9
    Your 4th point doesn't even make sense. 5-7 are questionable at best. 8-9 are meant to be reasons NOT to use Mac OSX, right? – Charles Boyung Apr 15 '11 at 13:58
  • @Charles: People coming from a Unix environment are likely to dislike backslashes for directory separators, and for them that's a (probably minor) reason to prefer Mac OSX. Items 5-9 are matters of personal preference. It's fine to disagree, but please accept that ohho has preferences that differ from yours. – David Thornley Apr 20 '11 at 15:59
  • Textmate? #2? Over Bash and the usual utilities (vim, grep, sed, ssh ..) – Eric Wilson Apr 20 '11 at 20:49

I'll be honest: I use a Macbook because I was learning Ruby on Rails and all the "cool kids" use OSX for Rails. That said, I enjoy the fact it's a mesh of a clean and intuitive UI with all the power of a Unix-based system (i.e. powerful command line tools). Outside of work (.NET dev) I almost exclusively use the MacBook unless I need to use an app that is Windows only.


my workplace gave option of laptop: windows or mac. I chose mac but only because I mostly do linux dev and I prefer the unix-y environment (nice unix terminal and all). But I would pick a linux laptop if that was an option.


I am a private consultant who does applications for PC/MAC, rarely Linux. I also do some web programming with Wicket(java) and PHP. My Primary system is a Mac.


  1. I can quickly debug (Between Mac/Windows) (Mostly UI) Mac Apps and PC Apps (using Parallels), can't debug Mac Apps on Windows or Linux even with VMWARE.
  2. The *nix environment (Between .nix/Windows) is more like the servers so there is less tweaking when go to the staging.
  3. Corporate support (Between linux/mac) by software vendors, Adobe CS Suite, Office: I get some docs that only open correctly in MS, or Web Templates made in Dreamweaver.
  4. Hardware support(Between Linux/Mac) - I love linux, but I am more likely to get support for new hardware then trying to look up compatible printers and shopping from that.
  5. I use VI/TextMate/Netbeans, depends if its a quick change or major project so I don't think program choice is the reason I go Mac.

By saying that real programmers don't use Mac is short sighted. If I didn't write for Mac, would I use Mac? Maybe... Or maybe I'd use Linux. Like I said before, I need to work with Dreamweaver Templates from designers, and tweak PSD files and need new hardware support. I don't want to be using an unstable WINE install of CS5 or work in VMWARE all day long to use Linux. I also need to stay with an OS that closely matches the live environment (file paths, executables, services).

Windows Linux and Mac all have great points. For now, I am on a Mac.


For people coming from linux and the college it looks just like Linux with a sexy UI.

Given enough years they start to understand the differences, and the drawbacks, and the complete arbitrariety of the many roadblocks the vendor is imposing on them and grow out of that. So, if they're enthusiastic, they're probably just a tad bit too young.

...and then there are those gamedev that just buy a Mac (and detract the cost off taxes) to run Windows on it and boot into MacOS only when they have to iPhone things up. But that's a small segment.

So the real question should be: "why young programmers straight out of college know no better than recommending OSX?"

...maybe because they got locked in with ObjC+Cocoa.

Not the answer you're looking for? Browse other questions tagged or ask your own question.