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.

 

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

  1. “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.

  2. 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

Discover more from George Stocker

Subscribe now to keep reading and get access to the full archive.

Continue reading