Ask HN: MAC vs PC for a developer?
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.
My criteria are: most productive for web development lowest possible maintenance
I mostly develop in python and also do a lot of HTML/CSS editing
what would you recommend and why? what software would you use on a mac? what are the major disadvantages of a mac over pc?
101 comments
[ 4.5 ms ] story [ 177 ms ] threadFor 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.
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.
That's not true. You can have virtual machines to test multiple versions of IE, too.
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6...
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.
I wrote a blog entry on this. although it's from a hobbyists's perspective: http://blog.uncool.in/2009/03/10/thoughts-on-using-a-mac-as-...
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.
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.
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.
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.
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 want new software as soon as it is released. I can do without bleeding edge software. I just want a safe, stable distro.
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.
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.
The advantage Linux has is that if you do not like the desktop you can switch to another.
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.
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.
(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 ;)
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.
no need to use mouse to scroll, move, resize, min, max window ... huge time saver
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).
It's also easier to do something like read directions on a webpage while you execute those directions in another window without hiding it when accidentally clicking in the browser.
I hide the Mac OS dock on day one and never look at it again, except for every couple of days when I have to relaunch Quicksilver. (It's not the best-maintained piece of software in the world, and it has some kind of long-term memory-management issue. One of these days I might have to try Launchbar instead.)
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.
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/
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.
if i have to buy myself: used pc for sale, install openbsd/ubuntu and i'm ready
but of course ...
no vim ... no work
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.
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.)
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?
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.
Doing it all on Windows just feels wrong to me after years of Mac use ;-)
I used it for awhile, and it's pretty good. It's called "E" - http://www.e-texteditor.com/
I still prefer TextMate, but if stuck on Windows, E is pretty nice for getting close in editor.
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).
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.
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.
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).
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.
And emacs is not the apex of what an editor could be. Not even close.
Nothing else...