The very best Polyglot Developer Platform For the Money

My career has gone through many phases: Perl to PHP, PHP to VBA, VBA to C#, C# to Python, Python to JavaScript, and back to C# again. I’ve tried Dual booting, I’ve tried VMs, I’ve tried dedicated machines for each environment. I’ve tried corporate “certified” machines (Lenovo), I’ve tried building my own dev machines. Nothing is pain free, but after jumping through every hardware problem known to man, the least painful developer hardware I’ve found is
The MacBook Pro.
Just about every issue I’ve had with development revolves around three specific problems:
– Stability
– User Experience
– Developer Support Tools
Stability
The MacBook Pro (MBP) absolutely kills in the stability arena. The Operating system is stable, I don’t have to worry that patching my system will result in rebuilding the OS, and I don’t have to worry about Windows Updates.  For running VMs, ReSharper is amazingly stable, able to suspend and restart the VM quickly for when that’s needed.
User Experience
Have you ever had this happen to you? You’re in Windows, and you’ve hit “Postpone” on an update, only to walk away from your computer and find that the update installed and restarted your computer without your consent?  Or, if you’re using linux, and you make the mistake of using apt-get and it installing a new linux kernel, only to have your system hosed on reboot?  My personal best? That happened three times before
I wised up.
Apple’s user experience is top notch (iTunes notwithstanding). While there is some fussiness around setting up Python for a Mac, there are clear analogues for developers who want to develop for FOSS on a MBP. The OS comes back quickly from sleep; the keyboard and trackpad contain unobtrusive (yet useful) features.  The entire experience from opening the box to using it for actual development is insanely easy compared to other platforms, where sometimes sound drivers don’t work, or the installation fails for no particular reason.
One significant advantage to choosing a MacBook Pro is that Apple needs to only support a handful of hardware, instead of the thousands upon thousands of combinations of hardware choices that Linux and Windows need to support.
Developer Support Tools
For Mac, Parallels is one of the best pieces of virtualization software out there. I can run a Windows VM and a Linux VM in Parallels and have everything just work, including each VM communicating with the others and the outside world over HTTP. I tried to get Hypervisor to do that over the course of two days and was met with failure.
There are some issues with Mavericks, however. If you click on a dialog that wants your attention (the bouncing icon in the Mac OS X Icon Bar) and the icon belongs to a VM on a different desktop (multiple monitors), you get… weirdness.
One area where Mac has been deficient before Mac OSX Mavericks was multiple monitor support, in that it didn’t really support multiple monitors. Now with Mavericks there is first class support for multiple monitors, but it’s not perfect yet.
Have you ever tried to get support for a Dell? It’s terrible. Hours spent on the phone to have a customer service representative tell you to wait for them to ship you a box so you can ship your Dell back for replacement. Contrast that with the Apple Store experience. I’ve taken my MBP to the Apple Store three times, and all three times I was in and out within 30 minutes, and *every single time* it was free. That’s incredible.
With the advantages the Macbook has over other development experiences, it’s hard to imagine reasons *not* to use it for development.
 

16 thoughts on “The very best Polyglot Developer Platform For the Money”

  1. The unfortunate part of this is that you can’t use three monitors unless you splurge a lot on a macbook. I could build a general use windows / linux machine for 600-800 (roughly a fourth to a third of the cost of a macbook pro / required equipment for triple monitors) and have it be more productive because of more monitors.

  2. You are missing the fact that you are going to pay anywhere from $1300 all the way up to nearly $3000 with peripherals, proprietary cables, and adapters. I bought a $200 Chromebook (Acer C720), upgraded the SSD to 128 GB for $99, and threw Arch Linux on there with Crouton. I have a $300 laptop that has a 9 hour battery life, weighs under 3 pounds, and does literally everything you would ever need for development.
    The peace of mind gained knowing that I have a $300 laptop and not a $2000 laptop in my bag is great. The extra cash can go to building a new desktop with a nice dual monitor display, or buying a brand new Chromebook every year… for the next 5 years… before I end up paying what you paid for your Macbook Pro.
    I am not going to defend Windows because many of the update and hardware driver issues you mentioned are true. Linux, on the other hand, I have never had an issue with. Hose your install in a kernel update? I can reinstall my entire package stack using Arch Linux’s Yaourt wrapper with a single command. I can be back up and running in no more than 15 minutes, and that is on the extremely rare occasion that an update actually messes something up.
    The bottom line is that the issues you describe are exaggerated. Take the right steps with Linux and you have one of the most robust development platforms out there. All while saving $1000 on your development machine. Yes please.

  3. One sentence I had trouble understanding was: “For running VMs, ReSharper is amazingly stable, able to suspend and restart the VM quickly for when that’s needed.” — did you mean Parallels?

  4. The keyboard layout is completely different from everything else. Might be ok if one switches to Mac completely, but I needed to spend quite a while to find out how to generate a good keyboard profile. Do I really need to install two programs for this?
    When switching between a two-external-monitor setup and just the MBP, it frequently forgets the monitor settings and sometimes just completely screws up showing only a grey screen until you force a reboot.
    Key arrangement on MBP keyboard and common (non-apple) stationary keyboards is different. MBP has Command and then Option to the right of the spacebar while everyone else has Option (AltGr) and then Command. I don’t know how often I closed a program when trying to write an @ and accidentially doing Cmd+Q.
    You can open Mission Control with a keyboard shortcut but you need to use the mouse to actually switch windows?
    Took me forever to find out how to create a system-wide shortcut that just opens a new terminal window independently, and it required the installation of more third party tools.
    So yes, if you want to focus completely on apple and embrace their way of working, it is a good system and easy from the start. But heaven forgive if you also regularly work on other machines. My muscle memory can’t do the switch between the keyboard layouts.
    So you need to put in several days of research until everything is finally customized using third party tools. And then you can wait for the few cases that still don’t work like my console shortcut when the focus is on an XQuartz window.

  5. 100% agree on the downtime: I had a fedora machine refuse to reboot after update and lost about 2 days of work. As a contractor that loss was more than the apple tax price difference. Though, I use a Top MBA , not a Top MBP …

  6. This is BS. Before you give money to Apple, try their product. I did. So glad I didn’t waste money on them… I tried developing, and it was HELL! I don’t know where to start!
    1. Want to use Home/End keys? Tough luck!
    2. Want to mount a directory from a VM like I was using Samba on Windows and SSH on Linux? Yeah, you need to install this, and that, and compile, and oooops! the kernel has a different version so you wasted 2 hours trying to mount the directory with your project.
    3. Have a wide 27″ screen? Too bad you don’t use it fully with full screen windows. Want to have 2 windows side by side, as easily as in Windows or Linux? Well you shouldn’t have bought a mac.
    4. Keyboard shortcuts are HELL

  7. This is BS. Before you give money to Apple, try their product. I did. So glad I didn’t waste money on them… I tried developing, and it was HELL! I don’t know where to start!
    1. Want to use Home/End keys? Tough luck!
    2. Want to mount a directory from a VM like I was using Samba on Windows and SSH on Linux? Yeah, you need to install this, and that, and compile, and oooops! the kernel has a different version so you wasted 2 hours trying to mount the directory with your project.
    3. Have a wide 27″ screen? Too bad you don’t use it fully with full screen windows. Want to have 2 windows side by side, as easily as in Windows or Linux? Well you shouldn’t have bought a mac.
    4. Keyboard shortcuts are HELL

  8. “and *every single time* it was free”
    Sans Apple Care I bet – those guys stand behind both their hardware and software. Walking away from a Genius Bar meeting always makes me feel like I’ve had an espresso and access to my system for the first time in months.
    Great read.

  9. “One area where Mac has been deficient before Mac OSX Mavericks was multiple monitor support, in that it didn’t really support multiple monitors.”
    What on earth are you talking about? The Mac has had the best multi monitor support I’ve seen, and it’s had it since System 6, way back in 1989.
    Mavericks added a new setting to let virtual workspaces and multiple monitors work together in a different manner, but I don’t know anyone who actually uses the new setting. I guess it’s nice to have that choice but it’s not like multi-monitor support on the Mac was bad.

  10. My career has also involved lots of different languages and much pain on different laptops, and I have also found macbook pro to be the best laptop I’ve ever had. But…
    I’m not sure the explanation is anything other than… it’s the most expensive laptop of ever had. I can feel the hardware is chunky and compact and well-built compared to the plasticy laptops I’ve had running windows and ubuntu. Those past laptops have always had battery capacity problems developing after a year or so, which obviously made them bad for productivity!
    Software-wise I don’t understand why people rave about mac OS user interfaces. For simple things an OS should do simply and well, like file management, mac OS has a dogs dinner of a UI. Even “media” things like managing photos and music (home turf for mac no?) Mac OS is surprisingly poorly designed.
    You mention running the updates. True it feels like a reasonably safe thing to do, but no more so than ubuntu or windows really. Development environment updates all carry their own issues of course, and not really getting any better these days as every modern language seems to come with it’s own convoluted dependency management system awkwardly overlapping with with OS packaging. I did some iPhone app development in XCode on macbook, which is the opposite extreme. So that should a painless thing all nicely managed by Apple right? Nope. The number of different updates to run and new interfaces to get to grips with to re-build and re-deploy a working app. Sheer pain.
    So on the whole, the mac book pro is great, but in my opinion apple can only congratulate themselves on choosing some good hardware (with a price tag to suite)

Leave a Reply

Your email address will not be published. Required fields are marked *