Thursday, October 11, 2012

Setting Up a Retina MacBook Pro for Multi-Platform Development, Part 1: Introduction

I've spent the last eleven years at work developing on Windows XP.  It's... okay.  I used to loathe Microsoft, but now the relationship is more complicated.  Given my choice of any development platform and environment in the world, I would pick C#/.NET and Visual Studio.  On the other hand, in eleven years,Windows hasn't grown on me at all.  I know a lot more than I once did about Windows XP and probably more than the average consumer knows, but I still don't feel comfortable with it, and I certainly don't like it.

I bought Vista Ultimate to run at home via Boot Camp, and it seemed to offer few advantages over XP with a *lot* of rough edges and security-related annoyances.  From what I've seen, Windows 7 is nicer, but at heart I'm a Mac guy (specifically, a "Classic Mac" guy who has mostly come to terms with OS X but still mourns the death of BeOS).

So imagine my delight when I was told I could get a Mac for my next work computer!  These days, this really makes a lot of sense even for pure Windows development: Apple makes really nice hardware, and a Mac plus Boot Camp or virtualization software makes a fine PC.  It makes even more sense for web development, where more platforms and browsers to test on make for a better webapp.  It makes yet more sense if you're regularly connecting to Linux systems, because the command-line environment is true UNIX with all the standard goodies (including an ssh client), the Terminal app is a real GUI program that follows reasonable UI guidelines and integrates with other apps, and there's a great free native X11 implementation.  It makes even more sense if you have lots of clients with iPads and there's a chance you'll need to get into native iOS development, where OS X is the only authorized development platform.  Finally, in my case, it makes me more productive (or at least makes me *feel* more productive), and more happy, simply because it's a Mac.

I was pretty shocked to find out I'd be allowed to get not just any Mac but a Retina MacBook Pro.  These are pretty amazing machines all around, but the display is really something else.  Just like an iPhone 3GS seems perfectly fine until you spend some time with the screen on a 4S, the Retina MBP has ruined me for "normal" screens forever.  The biggest downside is that not every app is retina-ready, and the pixel-doubled graphics you get for non-retina apps are so perfectly pixellated, they look worse than they would on a fuzzier, standard-resolution screen, especially when they're juxtaposed with everything else on the display.

Of course, I need to run Windows for my Windows-specific development, and I'm doing it in a virtual machine so I don't have to dual-boot.  Windows 8 is RTM, and Iowa State has a site license, so I asked whether I could try that rather than Windows 7.  My boss said to give it a go and just fall back on a Windows 7 VM for anything that doesn't work in 8.

Since I can technically get all my current work done on an XP machine with existing software licenses, I didn't want to run up a large bill for Mac-specific software.  At home, I have a lot of handy shareware/commercial Mac apps I've bought over the years to customize this or that aspect of my system, notably DragThing, which has been my Dock replacement since before there was a Dock.  It's been fun to be forced to live without some things to see what can be done with built-in functionality and freeware/open source software.

So the next several posts will be documentation of my experiences turning a 15" Retina MacBook Pro into a multi-platform, Andrew-friendly development machine on a budget.  I'll probably talk mostly about the Mac side, but I'll also have some things to say about Windows 8, specifically its support for HiDPI displays and how it integrates with OS X when run under Parallels 8.

No comments:

Post a Comment