
Ask HN: MAC vs PC for a developer? - anon87
I don't wanna start a new flame war, but work is buying me a new computer and I can chose, but I really don't know what I should pick.<p>My criteria are:
most productive for web development
lowest possible maintenance<p>I mostly develop in python and also do a lot of HTML/CSS editing<p>what would you recommend and why? what software would you use on a mac?
what are the major disadvantages of a mac over pc?
======
makecheck
Mac, most definitely.

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.

~~~
cglee
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.

~~~
zealog
That's true - and another reason to go with Mac.

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.

~~~
joechung
"If I were on a PC I would only be able to have one version of IE installed."

That's not true. You can have virtual machines to test multiple versions of
IE, too.

~~~
ks
Microsoft has released a program called "Web SuperPreview". It enables you to
compare pages both in IE6 and IE7/8.

[http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6...](http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-
dccff3fae677&displaylang=en)

~~~
duskwuff
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/>

------
joshsharp
I have a Mac and a PC and I feel more productive on a PC. I think the main
reason for this is that I'm a "maximised windows" kinda guy and switching
between windows and tasks feels much more smooth and simple for me in Windows.
It may sound like a small thing but because the OS X dock deals with apps, not
windows, it can be a pain switching between open windows (yes I'm aware of
shortcut keys etc). Also the tendency of OS X to clutter the screen with open
windows (which it seems most people are happy with) really frustrates me.
Spaces alleviates this somewhat, but I much prefer something like Photoshop on
Windows, for example. Much cleaner.

Having said that, the shell in OS X is really useful and a lot of Linux stuff
you'll be using (Python for example) feels nicer in that shell than under
Windows. Others here have commented on the "unix core" and it definitely is a
benefit.

For me, though, I'm content to use Windows and Putty/VNC into my Linux box
when required.

If you can, play with a Mac before you buy it. Developers tend to be a picky
bunch so what works for others may not work for you.

~~~
hs
tiled wm like ion3, wmii, dwm open new windows automatically maximized

no need to use mouse to scroll, move, resize, min, max window ... huge time
saver

~~~
moe
As a long-year ion3 user I'd like to second that. The productivity boost is
comparable to moving to vim/emacs from notepad.

~~~
nailer
Does ion3 handle standard .desktop shortcuts? A lot of the smaller WMs (with
the exception of XFCE) want to re-implement launchers for every app.

~~~
moe
I don't think so, mainly because ion3 doesn't really have a "desktop". It is
fully programmable though, so you could easily write a script that searches
your $HOME for .desktop shortcuts and adds those to the builtin menu, creates
keyboard-shortcuts or even dock-icons for them.

Personally I have never cared much for desktop-shortcuts. My most used
applications are all on the keyboard (F1 xterm, F5 browser) and for the less
used stuff I simply "F3, amar<TAB><CR>" (runs amarok via the "launch"
shortcut).

------
amastilovic
As someone who is doing programming nearly 90% of my working hours, and
someone who used all three major systems (OS X, Vista, Linux), I would suggest
you go with a computer that is giving you highest raw metal power for the
buck.

If you are really _working_ and not playing around with desktop cpu monitor
gadgets or trying out hundreds of time organizing schemes instead of doing
some actual work, you will come to the conclusion that it's not that much
about the editor, or the OS you are using, it's all about cpu and memory
cycles you wait for while compiling, debugging, testing.

Since Macs aren't actually known for their "bang for the buck" ratio (in
hardware terms), I'd go with a PC and install either Vista or Linux. Mac OS X
simply doesn't add that much value to justify the price difference (plus it
has its own quirks and wtfs).

~~~
mechanical_fish
_it's all about cpu and memory cycles you wait for while compiling, debugging,
testing._

Did you miss the part where the guy did a lot of Python development and
HTML/CSS?

"Why are you sword-fighting in the hallway?" "Oh, I'm waiting for my CSS to
compile!"

Last year DHH claimed to be doing all his Rails development on a _MacBook Air_
, a wonderful machine which I really like but not the fastest computer around.
On the other hand, it's still faster than anything I had years ago. And the
speed difference between the Air and my 24" iMac doesn't much matter for
Rails, unless you recompile your MacPorts or rubygem docs on an hourly basis.

But, if you see no value in the Mac OS, by all means use something else.

------
zacharydanger
PC running Linux is your best bet. Take the money they save versus buying a
Mac and use it for a second monitor which I find to be one of the _most_
important development tools. Having your code and browser open at the same
time will make your life that much easier.

~~~
jrockway
I disagree. I find virtual desktops much easier to use than looking at a
monitor that isn't in my field of vision. I would rather press a key than make
my body uncomfortable.

(For this technique to work, though, you need to be very comfortable with the
keyboard, and you obviously have to disable desktop-switch eye candy. Not a
problem with xmonad ;)

~~~
litewulf
I use virtual desktops and use multiple screens. I find it much easier to
glance back and forth between two screens (or three, or four) than to switch
virtual desktops and locate something. (This may be a training effect though)

------
sirsean
Pick the PC.

If you happen to be starting at the place I work, the only way I can get a Mac
is if new employees say they want a PC. Otherwise I'm stuck. I don't know if
I'm next on the list, but even if not that'd get me one step closer to my Mac.

So, yes. That's why you should pick a PC.

~~~
astrodust
So you pick the PC because there's a waiting list for the Macs?

------
avinashv
Honestly, if work is buying the computer for you, I'd get a Macbook (or
Macbook Pro depending on the budget they're giving you) and run OS X and your
Linux flavor of choice side-by-side. Develop in Linux--you may find that you
never need to go to OS X so you might even opt to get rid of it. The hardware
is really great; the new models are built very well and I hear there is good
support for the hardware features like the camera etc. in Linux (double-check
that obviously).

Especially for Python, which is installed in Leopard but is frozen at 2.5.1,
and general web development, you won't struggle at all in Linux. If you're
comfortable in a portable power editor (read: vim/emacs) then you're golden.
Plus, apt-get is _incredible_. Coupled with multi-booting or VM'ing, you'll
happily test across multiple operating systems and browsers.

------
blasdel
The only disadvantage of picking a Mac is that (unless they spring for a Mac
Pro) you can't stuff it to the gills with RAM.

Until the latest generation of consumer Macs the limit was 4gb, though now if
you spend $500 you can get 2x4gb DDR3 for an iMac or Macbook (though the
Macbooks can only address 6gb). In the PC world, you can get 4x4gb DDR2 for a
desktop Core2 motherboard for $350, or 6x2gb DDR3 for a new Nehalem
motherboard for $240.

~~~
potatolicious
You're doing web development, not building a supercomputer or trying to run
your laptop as a high-performance server. That level of RAM is entirely
unnecessary on a machine used for dev.

~~~
MrRage
I disagree. Doing web dev, you could easily be running a browser with multiple
tabs, web servers, db servers, and a handful of virtual machines all at the
same time. The more RAM you have, the smoother it all runs. That is unless you
like nice little pauses when you switch apps. If you have a 32 bit system, you
should have 3GB if you can. 64 bit, throw in 6 or 8 GB. Memory's cheap.

------
ewjordan
Laptop or desktop?

If it's a desktop, I won't comment, that's entirely up to you (maybe others
have advice) - I haven't used a desktop regularly in at least a year. If it's
a laptop, though, unless you work in a totally Windows-centric environment, a
MacBook Pro is the only choice (even in a Windows shop, I'd consider it since
you can dual boot and the hardware itself is really nice). Get one N-O-W.

Seriously - these things are freaking awesome, ever since I got one I can't
imagine ever buying anything else. I've never met a person that bought one and
didn't absolutely love it. First laptop I've ever had that didn't feel like a
cheap plastic toy...

Go for a 15" matte screen, though - the bigger ones are too cumbersome, and
the glossy screens just suck.

~~~
jrockway
_a MacBook Pro is the only choice_

Why do you say that? Thinkpads are built much better, and IMHO are better-
looking. You should only get a MacBook Pro if you want to run OS X. If you are
going to run Windows or a UNIX, you definitely want a Thinkpad.

(Only disadvantage is that Thinkpads are a real pain in the ass to buy. "Ships
in more than 4 weeks." Fuck.)

~~~
peregrine
HP Compaq n series are really nice too you guys should check them out. Just
like the think pad but less of a pain.

~~~
jrockway
I don't see anything on HP's website about an "n series". Link?

------
fizx
You need a *NIX system with some sort of port system (i.e. MacPorts, aptitude,
etc.) and the ability to open VM's to test a bunch of the configurations that
come up. Mac, Ubuntu both qualify. Windows is sorta possible via Cygwin.

Particularly since work is buying the computer, I'd get a Mac for the
hardware, and then decide what OS to throw on it later. You can run whatever
you want on a shiny new Macbook Pro.

------
godDLL
1) You just did.

2) Intel/Mac or Intel/Linux, so you can run IE6/7 in a VM/Wine. Macs are lower
maintenance.

3) TextMate/Coda or Xcode (or Scribes in Gnome) will be your definite friends,
as well as Terminal and Firefox/Safari's debugging features. Python and the
relevant libraries come with both systems and are easy to add to.

4) Would not recommend any Windows version for doing either development or
design. Or anything mission-critical, for that matter. All the software you
_need_ comes with the Mac in the "Developer Tools" package on your Leopard DVD
or in the public repositories for your Linux distro. You'll find many more
choices are available, and you may even fall inlove with some.

Major disadvantages of a Mac over PC would be that the hardware is mostly set
in stone at the time of purchase, which can, even if rarely, become a
nuisance. There is some very strong classic gaming going on on the platform,
but new titles often go on by not noticing OS X, which can be a bummer if you
like your machine to be your do-everything, including being a gaming console.
There are no disadvantages in relation to development, however.

 __And now for something completely different: __don't let them buy you a Mac
_if you won't own it_ when they do. That is, there will most probably come a
point when you'll _want to_ own it.

------
Tichy
Since so many pros and cons have already mentioned, I'll just add that the Mac
keyboards are not so super for coding (at least the german ones). It doesn't
have "Home", "Page Down", "Page Up" or "Del", other keys like "~" and "\"
require weird keyboard combos ("\" = alt+shift+"/"). Probably not an issue if
you are a whiz with Emacs or Vim, but I tend to not remember many keyboard
shortcuts, so atm it still bothers me occasionally (I am fairly new to OS X).

The MacPorts package manager works surprisingly well, but I still miss my
Ubuntu when I have to install other stuff than the Unix things.

Also, the preinstalled programming languages on OS X might get in the way of
the ones you install with MacPorts. Another case where I prefer Ubuntu,
because it reduces the number of "app managers" messing with the system.

~~~
duskwuff
Assuming you're on a laptop, Fn+up/down = page up/down, Fn+left/right =
home/end, and Fn+backspace = delete.

~~~
Tichy
Thanks!!!

------
warhammerkid
My work just bought me a mac book pro, and coming from a souped up desktop
running Linux, there were some upsides and downsides. Personally I would pick
Apple hardware if you can get it and run OS X, but if you've never used Linux
or OS X, odds are good that unless you really want to rethink how you use your
computer, Windows is going to be the best choice for an operating system. One
of the benefits of OS X, as others have mentioned, is the Unix core, but the
applications for OS X are really awesome as well - Textmate, CSS Edit, Things.
However, if you normally develop on Windows, the application centric vs window
centric model of OS X takes some getting used to. Personally I prefer OS X's
window manager over Windows, but that's just me.

------
juliend2
If you need to use Photoshop for your HTML/CSS editing (for taking image from
layouts, for example), dont go with Linux. Because you will not have the
possibility to install the latest version of Photoshop in any version of
Linux. Sure you can use a VM for things like that, but Photoshop requires a
lot of memory. Sometimes you'll have to open a 100 megs Photoshop file (PSD
files can really be huge like that)... Because of this, i cannot imagine
myself using something else than a Mac or Windows. Unfortunately, because i
love Linux otherwise.

------
dhotson
I find a combination of OSX with an Ubuntu VM (vmware) works really well. That
way you can keep your dev environment the same as your production linux
machine .. it's pretty hard to beat apt-get.

By using VMWare, the OS you use doesn't actually matter that much as long as
you have a decent terminal and your personal editing weapon of choice (jEdit
in my case).

------
astrodust
While there are a number of long-winded arguments that could be made in favor
of X vs. Y, Mac vs. Windows or otherwise, it's hard to argue against the
simplicity of the OS X platform.

Windows is inherently high maintenance in my experience unless you keep your
installed applications to a very specific short list. Uninstalling software,
or worse, drivers, can be an exercise in frustration.

I've never had an issue removing software on OS X as applications are
generally quite well behaved or they're effectively managed by the Darwin
Ports system.

It's also great that doing source installs on OS X is trivial. I don't think
the same can be said for Windows. Tradition is to go the binary installer
route there, and there's so many badly written installers.

While I respect those that choose to use a Linux-based desktop, as it can be
quite a chore to keep up to date and tricky to get different apps to work
together politely, I'd say that approach only works for people with intimate
familiarity with the various quirks and caveats of their distribution. To get
something like Debian, Ubuntu or Gentoo running in top form takes talent.

Making Windows into a productive development environment can be just as much
of a challenge, too, and there's some things that can never change. The
registry is a persistent horror, drive letters and backslashes in paths are an
extreme nuisance, and the second-class status of things like a proper command
line shell and compiler are just examples of my grievances with Windows.

While it's possible to glue together a workable environment in Windows,
especially if it's just for something simple like PHP + MySQL, once you really
want to stretch your legs and be more adventuresome you may run into trouble.

Although it could be fanboyism, 99% of the people I see at web-biased
conferences are on Mac machines. It's the singular dude using the Dell who's
doing the "think different" thing.

------
hs
if someone pays for me: mac

if i have to buy myself: used pc for sale, install openbsd/ubuntu and i'm
ready

but of course ...

no vim ... no work

------
jofell
I'd go for a Mac. If it's too expensive Linux computer would do. Windows use a
lot of resources (IMO) which would be very necessary in web-side development.

------
PostOnce
So you're saying you mostly edit text? There are only so many variations on
typing things on a keyboard and having them appear in a text editor. You'd
probably be fine either way, so you're really just looking at cost.

I'd suggest that if you've never used a Mac, the potential lost productivity
you'll have using and learning an unfamiliar OS could be a burden to you.

What have you been developing on up to this point?

------
iuguy
I also do a lot of Python development and a bit of HTML/CSS work. I recently
had to toss up the pros and cons of an MBP versus a Dell XPSM1530. The 1530
won on the grounds that it was £700 cheaper than the Mac, more powerful and a
better screen. The related cons (Vista, being a Dell) aren't so bad and I'll
upgrade to Win7 when it comes out.

------
grinich
You need to have access to and be competent on all systems.

My weapon of choice is the MacBook Pro. Pretty fast hardware. Swap in a 500gb
hdd and triple (or more) boot os x, windows (xp and vista), ubuntu, bsd, etc.

Or you can get a bunch of different machines and use synergy. I found that to
be most useful for testing web stuff across platforms.

------
dimitar
What do you guys think of Freebsd? Hardware and software availability? And can
I run stuff like Skype, VMWare and Flash?

~~~
vorador
It has a quite good hardware support. Unfortunately, flash isn't available,
but you can run skype with the linux emulation layer.

------
siculars
get a mac pro with gobs of ram. thats what i got a couple years ago. use it to
rock vm instances of windows/linux/solaris whatever. mac is, by far, the
leading dev tool in this space.

going to various computer/dev conferences over the years it was hard to not
notice the rise of apple laptops to the point where they are at least 60% of
all laptops seen at these conferences.

nevertheless, whatever you do - mac or pc - be sure to get at least two
monitors. studies have shown, and i can attest, that multiple monitors is the
number one thing you can do to increase your productivity.

my rig: <http://www.flickr.com/photos/9864615@N06/756229467/>

------
xenoterracide
if you don't need gaming, I'd get a linux box ( or a mac ), and run windows in
a virtual machine.

------
vaksel
get whatever you use at home

~~~
zepolen
Better to get whatever matches most closely your deployment environment.

------
dforbin
linux, duh

------
skwiddor
Linux Box running proxmox virtualisation if you're serious about web
developing you'll be wanting to test your sites in multiple versions of I.E,
Firefox & Webkit & Opera. That means running Windows at some point,
virtualisation is your best way. I run ProxMox virtualisation
<http://pve.proxmox.com/wiki/Main_Page> which runs a Linux in OpenVZ for
running the HTTPD stack and various 2k/XPs etc in Qemu.

But the answer shoudl really be : the one that runs the tools you use in the
best possible way.

I run Plan9 for my text editing requirements and I say it was the best I've
come across. so YMMV

------
TweedHeads
For desktop web development all you need is an iMac 24" and Photoshop.

Nothing else...

------
ideamonk
Don't forget that on OS X you would find Textmate, which has no match yet. On
windows the best editor would be Notepad++. But nothing comes closer to
Textmate. If you wish to save some money, then better got for a PC.

~~~
avinashv
That's quite an opinion you've thrown there. I run OS X and refuse to use
anything but Vim--but I'm not going to try convince developers to switch. I
think it's a little ridiculous (even though I'm sure it happens) to switch to
an operating system exclusively for Textmate...

I'm not saying you're necessarily wrong, but it's completely unreasonable to
say Textmate has "no match yet". And, for the record, yes, I do own a copy of
Textmate, and wasn't happy with it after several months of usage and went back
to Vim. MacVim is my editor now.

