For one, Mac OS X comes with a Python version installed. It also comes with a whole toolbox of Unix utilities, including a number of text editors. (There are many other 3rd party text editors for the Mac, too. Though I stick with "vim" or Xcode myself, both of which are included.)
You can't understate the value of being able to pop down to the Unix layer when needed. There are lots of times where a simple "grep" or "cp" or "mv" is exactly what you need, and I love that this is just built in to the Mac. If you aren't that familiar with Unix commands, I think it's knowledge well worth having; most of the basic ones are really not that hard to use.
I have to use Windows at work, and I have to say I'm amazed with how little it comes with. While it is possible to work productively on Windows, I have found this is only true after a large setup cost. So if you don't mind downloading stuff for hours, you can eventually get the right tools. Still, I have never found Windows tools to be as "integrated" as Unix utilities are; every Windows program wants its own scripting language, its own hackish way of doing things (in my experience, that is; YMMV). Microsoft's command prompt is also pretty lousy; it really doesn't compare to a Unix shell, and the idea that you could only get that level of power by installing all of Cygwin, is a turn-off to me.
Most people mean "Windows machine" when they say "PC" though. Since the way people use a word define the meaning of the word more than even a dictionary definition, PC does in fact mean Windows machine.
I'd argue that "PC" has two meanings then. I'm going for "non-Mac PC", since that's what the title implies by separating Macs from the rest of PCs, and because I don't feel sensitive to exclude a huge set of possibilities.
It definitely has two meanings in the same way that "hacker" does and it is all contextual. If I hear hacker outside of this website I usually assume it is being used derogatorily.
In the "I'm a Mac, I'm a PC" context there is no confusion what PC means. In Hacker News context I can understand how the term PC might be ambiguous. I am really arguing that at this point though even hackers are calling Windows machines PC's. Although I have always wondered why everyone refers to them as PC's I have never found myself being confused when I hear it nor have I ever been misunderstood when using the term.
Exactly, that's why I assume everyone who is on Hacker News is aware of the Linux branch of operating systems, and at least isn't naive enough not to consider them in this kind of choice.
It's not the same. If you say "Mac or PC", it is understood that you mean "Apple computers, or other type of general-purpose personal computers, i.e., non-Mac PCs". But if we interpret "PC" only as "Windows computer", then there's this huge number of OSes we're not taking into account, since we're just considering OS X and Windows.
I suggest that we're all getting a little too pedantic here. The point is it's basically all the same hardware. You can buy anything and put any OS on it, although it's not so nice to put OS X on hardware that didn't come from Apple.
As a web developer, you'll also probably need to test in Windows and IE. For that, get Fusion or Parallels and you can have Windows and OSX running side by side.
On my Mac I can test Mac versions of Safari, Firefox, and Opera. I can also have virtual machines to test for Windows Firefox, IE6, IE7, and IE8 at the same time. If I were on a PC I would only be able to have one version of IE installed.
It's still funny to me that to develop websites that work on all of the Windows browsers a Mac is the only thing that makes sense.
The performance is kind of "meh", though, especially in VMWare (where it's practically unusable). I personally prefer IETester: http://www.my-debugbar.com/wiki/IETester/
This would be the key reason to get a mac. To test anything in OSX legally - you need to be running Apple hardware. (Boot-camp/VMWare Windows and Linux). Until/unless Apple go to selling the OS on it's own - from a testing perspective (if you have to do that) - then a mac is the only way to go.
Mostly agreed, but beware that the UNIX layer on OS X is BSD-based rather than GNU/Linux-based, so it's not exactly the same as Ubuntu or Debian etc.
The biggest win on OS X for me is all the slickness of the desktop (Ubuntu doesn't even come close), and adding easy virtualisation to drop into any OS you want (my choice is VMWare Fusion, but Parallels or Virtual Box work too). Best of both worlds.
Desktops are a matter of personal preference. I am a Linux Mint (Ubuntu with some additions) user. I have used other people's Macs occasionally and I dislike the desktop.
The advantage Linux has is that if you do not like the desktop you can switch to another.
"I have used other people's Macs occasionally and I dislike the desktop."
Same here. I bought a Mac Mini for some dev work, and the UI drives me nuts. It's pretty, but so far requires way too much mousing and clicking.
I'm sure much of my angst is habituation from using a customized Kubuntu install, but as best I can tell those customizations are much easier in KDE than on the Mac.
I second that. Sure, you could get productive on Windows and Linux, but they're definitely not low maintainence. Plus, you could always install Windows using BootCamp or VMWare Fusion.
I second that. Sure, you could get productive on Windows and Linux, but they're definitely not low maintainence [sic].
Nor are Macs. Every piece of software needs to be updated manually, as there is no system-wide update manager. If you want to install UNIX software (like C libraries that your language needs to bind to), you will need to install some sort of ports system, and maintain that. (When I used a Mac a few years ago, none of the ports systems all had the latest versions of packages I needed, so I had more than one installed. This was a fucking nightmare to maintain.)
Anyway, this (along with Apple's evil-ness) is what killed OS X for me. Yeah, it's really pretty, but it is too hard to maintain. Debian is much better. It is never missing anything I need, and full-system updates are just an apt-get away.
For programming, nothing beats a good UNIX system, as long as you are willing to learn how to use it properly.
When I used a Mac a few years ago, none of the ports systems all had the latest versions of packages I needed, so I had more than one installed. This was a fucking nightmare to maintain.
macports is pretty much dead simple to deal with. And if you want to install something straight from source on OS X it is often no more difficult as it is on linux. My servers are all debian and ubuntu and it's basically painless using them side by side with OS X all day. Plus, with OS X you can have most linux desktop apps + any OS X apps. Even so, OS X is definitely not necessary if someone spends all of his or her time in the shell, and if that's the case linux would be a better choice.
When I used a Mac a few years ago, none of the ports systems all had the latest versions of packages I needed
Things change. Hackers have been migrating to the Mac en masse. So MacPorts has gotten better and better.
Two or three years ago I went through the pain of installing Ruby/Rails, MySQL, Apache, and git from source -- that was the popular choice at the time, because MacPorts was just not up to date. But MacPorts now has current versions of ruby, mysql, git, and apache, so it's time to switch back.
Yeah, it's probably not as good as apt-get. On the other hand, on the Mac I have Mac software, which more than makes up for it. And if I'm ever nostalgic for apt-get a Linux virtual machine is not far away.
I'd argue there is really no such thing as a low maintenance developer system. Any good developer will need to customize their environment alot to be as productive as possible, and this means different things for different developers. Personally I choose linux because I like the development tools available there best and find it easiest to make any changes I need. That said though, OSX and Windows are perfectly legitimate choices for different people. From what I've seen though, OSX is no more low maintenance for your average developer's "requirements" than anything else.
For web development though I'd say osx or linux. I just havent seen sort of tools on windows to justify putting up with it unless you're focused on microsoft technologies (or a hopelessly entrenched windows user).
You say upgrading every 6 months is low maintainence? Not to mention having new versions of everything pushed to you every week. Sorry, but I just don't have the bandwidth for that kind of thing.
If you had said Debian, I would have agreed, but Ubuntu is just a pain to maintain.
I use PCLinuxOS on my PC. So far, I don't have any qualms. Simple, easy to use and new releases come out when the developers feel the time is right.
There are the versions that are supported for 4 years. Boradband internet is good if you are running Ubuntu, that is true, but the actual effort of updating is not so bad (you could also automate it).
I have not yet run updates on my MacPort installation, but I would expect similar updates to Ubtuntu, except taking much longer (as MacPorts seems to compile everything on my Notebook, rather than downloading binaries). Or what do you mean by "everything"?
I don't know how the project is organized internally, but as a user it seems to me that the Ubuntu guys have no fixed schedule for pushing new updates. I will have updates to a few libs in the morning, then another, much larger update in the evening, followed by another small update next morning. If I don't install the updates, they pile up over time. These days, if I ever end up using Ubuntu, I never update anything unless it's something I need (eg, new version of Python, Emacs etc.).
I don't want new software as soon as it is released. I can do without bleeding edge software. I just want a safe, stable distro.
I think the updates are all security updates, which I personally want to get as soon as possible. It's true that a lot of times it seems like software I don't need, but who can tell in today's complex software environments? Maybe some other program I need relies on the program that I don't seem to need.
It's actually one thing that might speak against Ubuntu that for every release they freeze the version of the software version. At least that is my understanding. It is of course possible to install newer versions, but it would be more complicated than just using the package manager.
Another thing that just came to mind: if updates at random times bother you, I am sure you can configure the updater program to only check for updates once a week or something like that.
FWIW, Apple also pushes out hundreds of megabytes of updates I don't even need. At least the apt-based Linux distributions only try to update packages you have.
For one, Mac OS X comes with a Python version installed. It also comes with a whole toolbox of Unix utilities, including a number of text editors. (There are many other 3rd party text editors for the Mac, too. Though I stick with "vim" or Xcode myself, both of which are included.)
You can't understate the value of being able to pop down to the Unix layer when needed. There are lots of times where a simple "grep" or "cp" or "mv" is exactly what you need, and I love that this is just built in to the Mac. If you aren't that familiar with Unix commands, I think it's knowledge well worth having; most of the basic ones are really not that hard to use.
I have to use Windows at work, and I have to say I'm amazed with how little it comes with. While it is possible to work productively on Windows, I have found this is only true after a large setup cost. So if you don't mind downloading stuff for hours, you can eventually get the right tools. Still, I have never found Windows tools to be as "integrated" as Unix utilities are; every Windows program wants its own scripting language, its own hackish way of doing things (in my experience, that is; YMMV). Microsoft's command prompt is also pretty lousy; it really doesn't compare to a Unix shell, and the idea that you could only get that level of power by installing all of Cygwin, is a turn-off to me.