Ask HN: Why do devs feel a MacBook Pro is required for development?

11 points by timaelliott ↗ HN
I'm curious why the trend over the past few years has resulted in engineers feeling like owning a MBP is a requirement? The vast majority of the tech startup scene seems to only tote around these machines and are very willing to defend their choice in hardware + OS. I often will hear the argument that it's impossible for them to be productive on anything other than Apple hardware running an Apple OS.

There are excellent text editors and IDEs available cross platform. Having a local dev environment that matches production is very easy due to VM software. Viewing the resulting product (most often a website) depends on the cross-platform browser, not a particular OS choice.

Would love to hear HN's stance and viewpoint on this peculiarity.

28 comments

[ 3.3 ms ] story [ 64.9 ms ] thread
It's really only required for iOS/Mac development. The hardware is solid and you don't often have to think about it but I think OS X is a hinderance and a time sink for serious programming work outside of the platform specific stuff.

It's especially painful (subjective) to, for instance, get a rails dev or any number of other environments up and running and it's really annoying to do some embedded systems work on macs. (I say this as someone who makes his living developing iOS apps on a mac right now btw)

Serious Question: Isn't it hardest to get ruby/rails running on Windows?
I'm not sure if we mean the samething by "embedded systems work", however I've generally found embedded work to be far easier on OSX thanks to the unix udnerpinnings. There may be some troubles if you need a serial connector, in my case we were able to push new binaries to the HW over the network so we didn't need a serial connection much. Also, there are USB serial adapters that have become necessary even on windows machines (Less HW being made with serial adapters) (I say this as someone who just left a job working on consumer electornics device firmware for 5 years).

Now, I suspect linux is even easier for embedded work.

>It's really only required for iOS/Mac development.

Really? I program in HTML5/JS, PHP, Java, C and Python, but also need to do multimedia work.

That is, besides doing web or desktop programming, you also need to create and/or embed to your work bitmap and vector graphics, stuff for print, edit video and music, etc?

Now, you might never have to do anything but pure programming with no multimedia, BUT, what about also using the same computer as a home computer? I for one would want to be able to edit my personal videos, watch any kind of multimedia with first class support, etc. I also have sequencing as a hobby, which requires stuff like Logic, Cubase, Live, Reason or Pro Tools.

I said it's only required for iOS/Mac development. I was obviously not speaking to your set of personal hobbies but only answering the question that was asked and providing my viewpoint.

Yes, Mac can be convenient for multimedia work but again not required by any means and for some projects the Mac does get in the way. (And yes embedded systems stuff is a lot easer on Linux than mac for the most part)

They need a computer for development, going to meetups and such make a laptop more useful than a desktop. Apple makes the nicest laptop hardware around, and a really usable Unix OS. MBP QED.

I often will hear the argument that it's impossible for them to be productive on anything other than Apple hardware running an Apple OS.

They have spent sometime learning all the keyboard shortcuts, going to a different OS, text editor, etc. means lost productivity until they retrain and catch back up. Any further than that they are being a prima donna.

It's this.

I want a laptop. I hate everyone elses laptop hardware (more or less) and it's nice having the unix/bsd underpinnings available.

I worked for a long time on embedded linux systems and used windows as my dev environment. These days I do web stuff and I use a MBP. I prefer the MBP over all my windows machines. I could probably learn to love linux, even though I still have dark memories from the past. However, which hardware would I buy? I don't see any laptop HW I'd prefer or MBP.

A lot of us recommend Lenovo hardware, specifically the T- and X- series notebooks. I ran Lubuntu for a time last year on my X220i, and everything Just Worked. The touchpad in particular was amazing, so good that it was virtually telepathic in its responsiveness.

Cory Doctorow's experience with Ubuntu on his X220: http://m.guardian.co.uk/technology/2011/may/17/computing-ope...

Incidentally, I may be the only programmer around that doesn't like the Lenovo hardware. It never felt "right". The touchpad is more responsive but I'm not a fan of the "nib" and the physical buttons for the touch pad (Though I'm pretty sure you dont HAVE to use the physical buttons they're still obnoxious).

You're right though. If I were going to move away from my MBP I'd probably go with a Lenovo machine. Alternatively, I'd be interested in trying out the new Vizio laptop hardware and seeing how it feels. It could be crap, it could be awesome.

EDIT: As an aside, I do keep a windows machine around for gaming purposes and I still love windows 7... just not for dev-ing. Sadly, I only have time for a couple of games a year these days. Busy making stuff.

I'm a dev. I wouldn't buy a Mac even if they did cost similar to what I paid for my ASUS laptop.

Some people like them, and some people swear by them, but the people who say they can't develop on anything but a Mac are asshats.

There was a discussion a while ago where a lot of HNers said they rather not have a MBP: http://news.ycombinator.com/item?id=1786930

I am attracted to Apple products, but I don't own any because I don't want to spend the money and I am perfectly happy with a (much faster) PC running Linux. Developing for iOS might be a problem at some point, though...

I've used many platforms for development, over many years. My current setup is an MBP running an Ubuntu VM.

For pure Java dev, I'll usually use Intellij on OSX. As I have to deal with more non-Java components, I'll move to the Ubuntu VM (still using Intellij for Java). Getting open-source components to install, compile and run just seems simpler in Ubuntu than OSX. OSX is familiar enough (Linux-like) so that I can work in it comfortably most of the time. But when I can't, I have Ubuntu nearby.

I far prefer this to a non-VM Ubuntu installation because having the Mac there is nice. Multimedia works really well (it's probably nearly as good on Ubuntu now, but I've stopped trying). And setting up networking (wireless, VPN) is still easier on OSX. It usually isn't bad on Ubuntu, but when I run into roadblocks, I just configure my VM to go through OSX.

This setup also allows me to move my VM easily across hosts, have multiple VMs running (e.g. use an old one, build a new one).

Finally, this is a minor point yet a huge one for me. Gnu Emacs on the Mac just isn't right. There are enough tiny differences to make it frustrating. One of the major irritants is the font. I've been using 9x15 with Emacs on various platforms going back many, many years. For me, it is the perfect font. After many hours of searching, I can't find it for OSX, or anything that even comes close.

What are the alternatives to MBP for me?

- Windows + VM: I just don't want to deal with Windows at all. I've wasted enough time on it. Absolutely will not consider it.

- Ubuntu only (on arbitrary hardware): I'd be open to considering it. My impression is that the entertainment parts of it (audio, video) are far better than a few years ago. This would probably be fine.

One last consideration: The Mac hardware is just so nice, and it's sturdy. I recently replaced a 5-year old MBP. It would have survived longer, but I ran over it with my car a few years ago, and last year, for some reason, the damage started causing the display to flake out.

I am very curious. Do you mind sharing the circumstances that lead to running over the mbp with your car? I have heard or folks doing it on purpose but it sounds like your situation was an accident.

And it still worked for a few years? Cool.

The MBP (2007 17") was in a backpack, and I was putting stuff in my car for a trip, running back and forth to the house, and in general getting very distracted. I got in the car, forgetting that the backpack was leaning against a front tire.

I felt a bump, got out of the car, looked around, and saw nothing. Got back in the car, started driving, and noticed that something was definitely wrong. Got back out of the car, looked around, and finally noticed the backpack between the tire and the wheel well.

I had run over the front left side of the laptop. There were key imprints on the screen, but otherwise everything seemed fine. The wireless connection was never really good after that, but it did work given a strong enough signal. I guess I damaged the antenna.

And then, years later, the display started flaking out, getting to the point that the system was unusable. For a while I could work around the problem by putting 2-3 of those huge black paper clips on the frame of the display, near the damage. But then that stopped working.

That was a fine computer. I can't bring myself to just discard it. Burial might be more appropriate. The replacement MBP (2011 15") is just awesome.

Thanks for sharing. Thats about how I imagine doing it myself.

I am currently on a 2011 13" MBP and understand the just awesome feeling!

I figure it's because it's easier (and possibly legaler?) to run Mac OS X on the Macbook than it is on an ordinary PC. I presume Linux and Windows would be about the same, in terms of difficulty of setup, whether you're using a PC or a Macbook. So, if you aren't sure what sort of work you might need to be doing, some kind of Mac-thing covers more potential cases.

Also, if you can look past the somewhat childish glowing apple, the Macbook Pro ticks all the usual Apple boxes: looks nice, easy to keep clean, feels solid.

The productivity thing is just the usual bollocks. Changing OSes and development tools and so on can seem like it would be the end of the world, until one day you're forced to do it (for whatever reason), at which point you always find out that it's no more than an annoyance.

(This even takes into account Xcode 4 and the Windows command prompt, both of which are maddeningly, frustratingly awful.)

>The productivity thing is just the usual bollocks. Changing OSes and development tools and so on can seem like it would be the end of the world, until one day you're forced to do it (for whatever reason), at which point you always find out that it's no more than an annoyance.

Bollocks for you maybe. We don't all have the same job needs. I absolutely need Adobe Creative Suite and several multimedia tools, as well as a full UNIX.

Neither Windows (only Adobe), not Linux (only Unix) fit the bill.

There's a big difference between "impossible", and merely "impossible to be productive"! The latter is what the question mentions. And when I deny that this is the case, the sort of thing I'm denying is that people who use (say) Mac OS X for developing their iOS programs would find it impossible to be productive, were they suddenly to find themselves forced into using (say) Windows to write things for the Xbox360.

Oh well - perhaps my reading of the question is wrong, but this is very strongly what it implies to me.

I've got an MBP for work, and I really dislike it. I've gotten used to the software not behaving as I'd expect (I find that I have to use the terminal for many operations that I'd prefer to use a GUI for, which is probably good for me), but I still hate working on it and would gladly take a laptop of lower "quality" for something that didn't rub me the wrong way quite as often.

The thing I find most annoying is the lack of home/end keys on the keyboard. I know that there are shortcuts to emulate these, but I've got a lot of muscle memory tied up in these keys existing, and not having them is a huge imposition to my ability to navigate effectively.

Confirmation Bias plays a huge role. It is VERY difficult for the brain to break past what seems to be a societal norm, at least in the modern tech scene. Also, when it's seen as the way to "get things done" programming-wise, then many of the coolest new toys and utilities will first target the mac. Take Ruby on Rails -- only now, years later, is doing rails development on a Windows machine in the realm of possibility (but still not recommended, personally). VMs can lower the bar, but trying to program inside a VM can be quite frustrating.

Plus, add in a dash of consumerism and the modern psychosis of increased perception of value with rising cost, and you get there. It's not a huge leap; put an MBP and a Toshiba side-by-side, and which looks nicer?

I switched to OS X (iMac) about 2 years ago. About 1 year ago, I switched back to Ubuntu.

When I switched, it was amazing. I felt so productive and everything was fantastic. However slowly I realised that I was lying to myself - lots of things simply aren't as fast on OS X and I found development to be pretty poor. In the end, I was doing most of my development on a remote Linux box and that's when I decided to move back to Linux full-time.

Now I'm running Ubuntu 11.10 (with Gnome 3) on a Thinkpad and Ubuntu 10.10 on a machine I built with a huge 27" (2560x1440) display - I don't think I've ever been more productive.

If your employer is willing to spend that much on a Veblen good for you, it marks you as kind of a big deal. I was issued one for a while just because I suspect they won't make uncrippled human-worthy tools for much longer, and I wanted to see what they had been like. It didn't change what I could accomplish, but the UI fit and finish were pleasant.
1 - I know people will disagree, I use and love linux etc, but a macbook is like using linux except not ass for desktop usage. Audio playing, wifi, volume controls, brightness controls, sleep, hibernate, multiple monitors, multiple screens, different resolutions for projectors, bluetooth, etc all just work. It is possible to make these things work on linux laptops? Sometimes, maybe, sorta, and if you have a bunch of time.

2 - it has bash and the tools I use work the same way they will on the linux boxes I deploy to.

3 - I won't use windows and I wouldn't take a job that did. Been there, done that, never again. cygwin is a joke and you're never quite sure if the errors you're hitting are a bug or a difference between the deployment environment and cygwin.

4 - community: it's the common development environment for web software and data analysis, so it has the least sharp edges. Because many people use it for web dev / internet dev things tend to work and get fixed first.

5 - vim works just fine, as do R, matlab, python, scipy, bash, awk, sed, etc

6 - nice hardware. Robust, doesn't flex like plastic. Oh, and magnetic charger connections! I have no idea why other manufacturers are too stupid to use these, but I've killed thinkpads by kicking them off the table after getting tangled in charger cords, and the magnetic disconnects have saved my macbook several times.

7 - generally good service, easily available at apple stores.

Re 6: Apple has a patent for magnetic charger connections. Whether Apple isn't willing to license the patent or other manufacturers aren't willing to pay to license it I don't know.

Re 1: Absolutely true, and it's something that might make me go back to a mac (from Ubuntu) in the future.

I'm likewise very curious. Outside of iOS development, I don't seen the need to carry overpriced apple products. I have a used thinkpad that I paid $100 for 2 years ago, and I get more development done on it than most programmers I know.