Ask LH: Is A MacBook Pro A Good Buy For A Developer?

Dear Lifehacker, I'm a software developer by profession and am looking at buying a new laptop. I'm contemplating shifting from Windows onto a 13-inch retina display MacBook Pro.

I plan to use the machine mainly for running high-performance software such as Oracle Fusion middleware, Oracle 11g, Microsoft SQL Server and Informatica (in local versions). I realise I can do this using virtual machines, but is that going to be a satisfactory experience? And how tricky will I find the transition to Mac?

Also, Apple is currently running a six months interest-free sales promotion. Is that worth signing up for? And if I buy a new machine now, is there a risk it will superseded before the end of the year? Thanks, Mac Mantra

Picture: Getty Images

Dear MM,

Before slapping down money on this new machine, I'd firstly suggest spending a little time working with a Mac and seeing if you're comfortable with the Mac OS environment. Even if you're intending to work within a VM for key development tasks, you'll still spend much of your time within the Mac system therwise. For a purchase that's going to cost at least $1400, it's worth spending the time finding out if you enjoy the experience.

Apple stores are quite happy to let you play around with a system in the shop. We've offered detailed tips on how to migrate from Windows to Mac, and those are also worth checking out. Bottom line: the transition can be quite straightforward if you do the research, and if you're motivated and excited about it.

That said, I have to admit that for the environment you describe, I'd be inclined myself to stick with a Windows box. While VM performance is perfectly decent on a Mac, if your main job involves using Windows-only software such as SQL Server (the most obvious source of issues in that list), then adding in an extra virtualisation layer seems like overkill, and something that might cause you a certain amount of avoidable hassle. That's just my take though; I'd be interested to hear from people who have made similar transitions in the comment.

As for the financing question: interest-free finance is useful if you know you'll pay off the deal before interest starts being charged. If that won't happen, look elsewhere.

Having updated its MacBook Pro line back in October, it would seem unlikely that there will be a major refresh from Apple in the near future. That said, Apple doesn't always stick to predictable annual cycles (it has broken that pattern with tablets, for instance).

Whatever platform you buy, you need to focus on the best available machine at the moment. If the machine is suitable to perform the tasks you need through its lifespan, that's the justification for purchase.

Cheers Lifehacker

Got your own question you want to put to Lifehacker? Send it using our contact form.


Comments

    You're going to have a bad time with MSSQL Server and Informatica on OSX. Oracle you'll have a bit more luck with (being mainly Java based), but it's still not really "supported", you can get it working, but you'll be doing so only with the help of the community (and a lot of late nights and pain and screaming at things, wondering why oh why you embarked on this endeavour).

    I think, with all the ultrabooks out on the market right now, you can now get reasonably attractive, well built Windows laptops, without breaking the bank, the only real reason you'd get a MacBook would be for the software. The biggest development bonus with OSX is, of course, much better support for native and managed applications for OSX and iOS. If that's what some of the intended use would be, you might be better off with a MacBook, dual booting into Windows as a "Daily Driver", and OSX when you need to develop for OSX/iOS.

    If you buy a Mac, Bootcamp it. Don't mess around with VMs when you have a native solution.

    Don't buy a macbook, if you do, forget VM's - unless of course yo have the luxury building it on an ESX or HyperV server with lotsa grunt. Bootcamp is easy to set up, and rEFIt makes it even easier to boot into Windows.

    I've got a late-2011 MacBook Air, and it's great for VMs but only when running from the SSD. Thus, drive space becomes a big issue. Running VMs off a USB drive is rubbish because of the USB overhead, but a Thunderbolt drive would probably be fine if you didn't mind selling your car to buy one.

    It may be better now, but Windows as my primary OS always wound up driving me nuts. It does bog down more rapidly than OSX, and I'd find myself needing to wipe my primary OS much more often than I'd like. By basically doing storage on the MB drive, but installing software to a VM and taking snapshots, I can now just jump back to a nicely working system when things start slowing down. Also, I can just install a piece of software, try it (or even use it) then switch back to my snapshot.

    TBH, I actually thing the best thing you can do is install a nice lightweight OS and virtualise everything inside it. You get snapshots, easy rollback, etc.

    (Note: more recently, I've just got two laptops - my MacBook Air, and a laptop which I use as a VM server for my various windows and Linux servers, as well as Windows desktop).

    I fail to see why you would buy a mac. I understand if you are a mac fanboy (sort of), that just makes sense. I understand if you want to develop for mac, that makes more sense. But to buy a more expensive laptop and run primarily windows software? It does seem like an odd way of going about things.
    I personally dislike mac. The apple business model of charge more for "exclusivity" irritates me, and the OS itself is just annoying to use. I am hardly a windows fanboy, I like linux but for one reason or another I can't use it as my main OS. First is lack of game support, second is lack of Visual Studio, third is my latest computer has a NVIDIA card and UEFI and installing official NVIDIA drivers has crapped out every time I have tried.
    And 13 inch display? I have a 17 inch laptop and that is irritating enough sometimes. For general use it is fine, but for developing I do occasionally feel the sting of small screens. I would dread going any smaller.

      Couldn't agree more.

      The only reason I could see buying a mac as plausible is if you needed to use mac specific software. Failing that, you are just buying more expensive equipment for poorer performance and more hassle.

        couldn't disagree more. Every PC laptop I have worked on has been a pile of junk, yet the few macbook pros I have used are solid performers. I'm a software developer and i would never go back to using a PC ever again, I made the switch back in 2008 and haven't looked back.

      I agree that buying a Mac if you're going to use Windows as the primary (i.e. on-the-metal) OS makes very little sense - except perhaps that you can get bigger solid state drives in a Mac laptop (or could late last year, at least).

      I switched to a Mac as my primary machine a couple of years back for two reasons: The 13-inch Air had a higher resolution screen (1440x900) than many 15-inch Windows laptops, and I needed to test iOS.
      However, most (but certainly not all) of the time I've come to prefer OSX to both Windows and Linux. No small part of that reason is as simple as: excellent multiple-desktop support and expose. The ability to three-finger swipe up a touchpad to see all open apps on the current desktop, and three-finger swipe side to side to change desktops has made a remarkable difference to my efficiency.
      Prior to the Air, I was using a 15" Dell with a 1920x1200 screen, so I did notice the drop in screen resolution but it bothered me less than I had expected. When I need to, I use an external 1920x1200 screen but that is more about having multiple monitors than anything.

      That said:
      1. Macs are expensive; if you're not using Mac OSX then you're losing a bunch of the reasons to buy one.
      2. Finder sucks. It really, really, really, really, ..., really sucks balls. Seriously. You'll long for Windows Explorer within a day, and it never gets better. (If you feel like spending $70, you can get something which sucks less, but integration still sucks).
      3. If you want to play games, the Air is out immediately. I wouldn't get a pro for that either, to be honest. They are just not game machines.

      I like the Air because it has a good screen, is really light, and I like the bits of OSX that I do like enough to use it rather than Windows or Linux. If you're going to use Windows on it,
      and not inside a VM, then it is an expensive exercise for little benefit.

    1400 bux, you can pick up an i7 laptop, load it up with 16-32 gb of ram, an ssd and a second hard drive.

    the laptop i use is a 17.8" acer which was given to me, 128gb ssd, 1tb storage drive, bluray 16gb of ram.
    i can easily run server 2012 (2 or 3 different configs) and a windows 8.1 or 2 vm.
    all at the same time for testing.
    as well as do my work that i do.

    screen space however.. the more the better (i use a second screen at work)

    i'm off to uni this year studying comp sci. i'm currently lugging a 15" hp laptop that is just too big and heavy for what i need. i'm planning on buying a 13" macbook air for me - weight is an issue whwn i add textbooks.

      Surface Pro 2. Do it.

        i had weighed it up.. as a comp sci major tho the abilty to run the 3 major os (Win, Osx and linux) on the one device was the killer.. especially as i will be programming for iphone in second year

          Ahh, fair enough. I had to do similar recently, so I virtualised OS X on my MSP2. Not everyone's cup of tea (ran pretty average and is against the TOS) but worked good enough for the small amount of iOS development that I needed to do.

          Couldn't really maintain dignity as a real Sys Admin with a mac anyway. Also don't want to give Apple money for restricting their system in a way the others don't.

            You couldn't maintain dignity as a Sys Admin with a Mac... vs a Surface Pro 2?
            That surprises me. As much as I like the Surface Pro 2 (although that really is getting into 'tiny screen' territory), most of the sysadmins I know use either MB Pro/Air or Linux machines. That said, they are maintaining mostly Linux servers so it makes sense that they would use a Unix-based OS on their own system.

            If you're maintaining a Windows network rather than a Linux network, of course, then using a Surface makes a whole lot more sense.

            I did run OSX in a VM for a while, but the laptop didn't support hardware-assisted virtualization so it was awful.

    Oracle Identity Management developer here.

    The Macbook Pro is a viable platform for a development box, but not the 13 inch versions.

    This is for a number of reasons, firstly, Oracle Fusion middleware is not supported on Mac, and the windows versions barely have support. For this reason you will need to run up a VM of some sort, preferably with Oracle Linux. Given that you also want to run Microsoft SQL, you will either need a Windows VM or bootcamp into windows (always prefer VMs for development)

    Secondly, Oracle is a memory hog, and if you want to touch anything in the middleware stack beyond a database, you will need 16gb of ram. Unfortunately, the only model with 16gb of RAM is the top of the line 15inch model and the current line of Macbook pros have the RAM soldered to the mainboard so you won't be able to upgrade. I have done development on a 8gb machine, and let me tell you that it is a waste of time. You spend so much time trying to manage memory, starting up and shutting down the weblogic servers that you need for that point in time that its not worth it.

    Thirdly, Oracle is a space hog. You need good fast space. Each VM I would size at a minimum of 80gb if you want 2-3 applications on the VM. SSD reduces the time of Oracle application server startup times by more than half. It makes it a lot less painful when a server reboot takes a couple of minutes as opposed to 10+ minutes.

    A retina Mac with a big SSD & lots of memory would be very cool. Run VM's on it [Fusion, Parallels or Virtual Box]. MSSQL requires Windows - run it in a VM as an appserver/database server. Oracle middleware & database 11g won't run on a Mac [only 10g will]. Create another VM with Linux as an Oracle appserver/DB server. Use the Mac as a client and connect to Linux/Windows over a virtual network. I have done this on a Macbook Air 11inch, it ran fine with a Linux VM [I was working for Oracle at the time, so never tried Windows]. If you are a long time Windows user, moving to Mac has its challenges [e.g. no delete key on laptops, maximise button doesn't maximise - I fix the latter with Moom]. After 3 years I really didn't like working on Windows anymore, so moved to a BYO Mac. Once you are used to it, MacOS is a smoother experience than Windows [Win XP or Win 7, haven't tried Win 8]. Also, I actually prefer MS Office on Mac, since the 2011 release, as you have both menus & ribbon. To make sure I am not locked in the "walled garden" I use Gmail, Evernote, Dropbox [for photos too, it collects photos off all my devices].

    If you like the hardware, just boot Windows and forget about OSX entirely.

    Run up VMs for the Linux stuff and you'll be fine.

    It'll be much less frustrating, for starters, and since barely any of the stuff you'll be working on runs under OSX, you're actually just eliminating excess fat that isn't at all useful to what you're doing.

      And, of course, as much RAM and the biggest, fastest SSD you can afford would be essential for any sort of sanity with those big footprint apps.

    Yes. A MBP is a decent dev box. You get the best of both worlds. For web dev in particular OSX pwns windows ;).
    I say this as a .Net dev working with a bunch of .Net devs many of whom use macs for the whole range of windows apps, web apps, SQL server etc.
    The main downsides are the keyboard inconsistencies when switching regularly between OSX and Windows, and issues with retina resolutions vs. non-scaled resolutions in windows. These issues are getting better, but you'll find various apps just look bad in HiDPI in your VM.
    I highly recommend to spec it to the max, and probably want to consider the 15in version over the 13in because you'll want the screen res, RAM and CPU upgrades.

    Sorry, disagree with the other .Net dev. I'm s senior/lead .Net CMS web developer. Recently started contracting and had to buy a laptop for work, after looking around, I didn't even consider the Macbook at $2500 and found a Toshiba Ultrabook for $1700. For that price, I got an i7 machine with 8gb RAM and a 256GB SSD and the actual computer only weights 1.1kg.

    I had to work on an incredibly resource-intensive website and API using Windows IIS and SQL Server and the machine stood up the requirements with relative ease, my only issue was actually running out of RAM, but having a swapfile running off SSD didn't hurt.

    I can understand front-end web developers using a Macbook/OSX for creating markup and cutting from Photoshop but I have trouble taking the Macbook seriously for heavy back-end development, especially anything requiring Oracle or SQL Server.

    I know it looks pretty but that tells me more about you than it does your ability to develop robust and scalable software ;) There are plenty PC/Windows brand laptops that provide the same reliability and production quality of the Macbook, to me, spending an extra $700 or so for a machine that looks nice but will require you to spend half your time connecting to apps you need through a VM... well, that don't make sense to me. (NO FLAMEWAR!)

Join the discussion!

Trending Stories Right Now