Why use a Macbook Pro as a Windows .NET Software Developer (Updated)

Update December 2016: Apple has released a new version of the MacBook Pro featuring the new Touch Bar feature. I do not recommend buying this model.

  • Worse battery life
  • Worse keyboard
  • Touch Bar feature is pretty useless for Bootcamp or virtualization – you will miss the usual function keys
  • USB-C only. Expect to spend 100s on adapters.
  • The original Bootcamp drivers actually physically blew the speakers when running Windows

Luckily Apple still sell the 2015 model without Touch Bar. I would recommend buying one of those.

Original post continues below…

I’ve been using OSX alongside Windows for almost 8 years now. In this post I will outline why a Mac is handsdown the best development laptop you can buy even if you are primarily a Windows or .NET developer. I use a Retina Macbook Pro 13 inch at home and for side projects, plus a Retina Macbook Pro 15 inch at work.

image

Reason 1: You need access to OS X as a professional software developer

If you care about maximizing the value you can provide as a practitioner of building software, you need access to OS X. OS X is the only way to build native iOS applications – and as a .NET developer without access to OS X, you’ll never even be able to use Xamarin to run your C# code on iOS natively. You’ll also miss out on the wider community and the rest of the development world – Javascript, Ruby, Python and Scala developers all use Unix-based operating systems to do their work, not Windows, and most of the time their preferred platform is OS X. If you want to dabble in Ruby over the weekend, or even teach yourself a new skill, OS X on a Mac is the only way to get first class support as most non-.NET/Java developers run their stuff on Macs (a small minority use a Linux distribution to do their work). No laptop other than a Macbook Pro or Air will give you access to this world and you will find yourself increasingly isolated professionally if you can only use Windows.

Reason 2:  It’s the only laptop that lets you run OS X and Windows at the same time

Since Apple put Intel chips in their machines, you’ve always been able to run Windows natively on a Mac by creating a second partition using the built-in Bootcamp utility. Since the middle of 2014, this has gotten even better with the introduction of native UEFI support. Gone is the 80s-era BIOS emulation, and now Windows boots just as fast as OSX itself. The Windows 8 startup circle animation even starts rendering before the Mac bootup sound finishes playing.

You don’t have to reboot when you want to use Windows – you can attach that same native partition within a virtual machine using Parallels or VMWare Fusion. That means you can run both OSX and Windows side by side, rebooting into the native Windows partition when you need the full power of the machine. Plus, its really cool to be able to do this:

Swiping between OSX and Windows

(As a side note, I get much better performance out of Parallels Desktop 10 than VMWare Fusion when running Windows 8.1 or the Windows 10 Tech Preview – the Parallels virtual display driver is WDDM 1.2 compatible, rather than VMWare’s WDDM 1.0 compatible version. WDDM 1.0 is from the Vista era.)

Reason 3: Multiple monitor support is amazing

All the Retina Macbook Pros have two Thunderbolt ports, which double up as Mini DisplayPort ports, and an HDMI port. The Retina Macbook Pro 13 inch can support 2 external monitors under OSX, and three under Linux or native Windows. The 15 inch version can support 3 external monitors and the internal screen at the same time. Both these limits can be extended by using USB 3.0 “DisplayLink” adapters or docks at the cost of CPU power and graphics quality. With virtualisation, you can set Windows up to use any number of monitors.

Reason 4: You can test your work on multiple retina display implementations

Both the 13 inch and 15 Retina Macbook Pros have amazing high resolution screens. If you are building web applications, you need to be able to test your work on “retina” displays and this is the quickest way of doing it, without getting a 4K monitor. Most retina displays in the wild are on Apple devices too (iPad, iPhone etc). The ridiculous resolution of the 15 model (2880×1800!) even enables you to test your apps and sites in Windows at up to 200% DPI scaling without an external monitor.

Reason 5: The Apple Store retail support network

Say what you want about the “cult of Mac”, they have retail support available in almost every major city on earth through their Apple Store network. If you need a new charger or accessory, you can walk in and buy one from an actual shop. If you have a problem, you can go in and (sometimes pay for) a repair – not phone an offshore support line and get a box posted to you. Acer, Dell, Samsung etc do not have the meatspace reach of Apple (unless you like to shop at PC World). The thought of having to buy a replacement AC adaptor for a “Acer Aspire S3-392G” machine at short notice is quite scary. If you have a preference for the US keyboard layout, a Mac is the only laptop stocked in retail available with a selection of keyboard layouts – when in Tokyo, Apple were the only people in the whole city that stocked laptops with US keyboards.

Reason 6: The .NET Framework is becoming multiplatform

In case you missed the news, Microsoft have committed to making the core of the next .NET Framework version work on both Linux and OSX, instead of leaving it up to Mono to provide an implementation. This is a direct result of the leaders in the .NET space stretching C# out of it’s comfort zone of Windows and Visual Studio. ASP.NET vNext supports development using Sublime Text on a Mac. The OmniSharp project brings C# support to Sublime text, Emacs and Atom. Visual Studio is not required. From 2016 onwards, I expect ASP.NET vNext to start featuring in C# developer job ads, and they are going to expect you to be able to at least run applications without Visual Studio. Deployment of greenfield applications to Linux servers using Docker containers will start becoming the norm from next year.

In Summary

I haven’t even touched on the other reasons why this is now my preferred setup – the now native SMB 2.0 support in OSX, OneNote finally on Mac, the quality of the keyboards and trackpads – but using non-Apple laptops is painful sometimes. I was once issued the 2nd generation of the fabled Lenovo Thinkpad line of X1 Carbons that got rid of the function keys and replaced them with comedy touch “context sensitive media buttons” (the 3rd gen reversed this bonkers choice). My last two companies have eventually managed to sort out a top of the line 15 inch Retina Macbook Pro as my corporate machine and thanks to the proliferation of Macs in the corporate setting, IT departments are slowly warming up to the idea.

If you have any questions about how I use the above, drop me a line in the comments or send me an email and I’ll be happy to respond.

Why I won’t be returning my Microsoft Surface RT

I’ve picked up a Microsoft Surface RT from the “temporary” New York Times Square Microsoft Store. While the purchasing experience was a bit of a mess (untrained sales staff – I ended up having to type my own details into their POS terminal as I’m not quite sure the guy knew how to type), I managed to make off with a properly boxed (I skipped getting the staff to unbox it and walk me through the “Out of Box Experience”) 32GB Surface, Type Cover and VGA adapter.

The device

This is an amazing piece of hardware. I’ve dabbled in and out of portable computing ever since the original Windows Tablets in the form of the HP TC1100. The TC1100 was ahead of its time – a full version of Windows in a tablet with a decent attached keyboard that went together to make a case. However, the hardware was pretty bulky – fans and a display too far away from the glass, making touch, even with the included stylus, inaccurate.

This really looks like something out of a Bond film. The tapered edges and kickstand both apparently go off at 22 degrees (I haven’t measured), looking deliberate – as if designed by actual designers. I would not be surprised if some ex-Apple guys worked on this device. The battery is said to go 10 hours of mp4 video – more than enough for a long haul flight, and I can personally attest to the quick charging of the Surface up to around 50% in about an hour. The camera is at an angle to compensate for the slant when using the kickstand. Portrait mode looks slightly ridiculous, but I can’t imagine using it in portrait when just sitting the device landscape in your lap works so well.

The Type Cover is like nothing you’ve seen before – forget the comedy Bluetooth “keyboard covers” for iPad users desperate to do a bit of actual work on their devices – this is genuinely a pleasure to use. The small multitouch trackpad is great, but strangely defaults to inverted scrolling like OS X Mountain Lion. My only gripe is that they still have the Caps Lock key – I will have to delve into the Registry to switch this to a Control key. Yes, I did say Registry…

The software

Windows RT is installed by default and is the most fascinating part of the device. Many pundits have long called for Microsoft to abandon backwards compatibility and build a new operating system – if they did, it would look something like this. Windows RT is Windows 8, but without the backwards compatibility legacy. The full Windows desktop is here – the Command Line, PowerShell, Windows Explorer, Paint, Notepad, VPN connections, BitLocker – the works. The only difference is that WinRT only allows Microsoft-signed applications to run on the desktop. Visual Studio 2012 can build ARM applications but this is blocked by Microsoft – bypass the block with a registry setting and the compiled binaries are blocked by Windows RT. I suspect this is because the device is subsidized and they hope to recoup revenue from the Windows Store apps, but it might just be a ploy to force developers to build Metro-style applications. The thicker, heavier, noisier Surface Pro is due soon and will run the full x86 Windows 8 Pro, bringing legacy support with it.

If the Surface RT is meant to be used as a main or only machine, this is going to cause problems. In the Microsoft Store, non-technical members of the general public were already asking if they “could use their iPhone with it” – yes, they can, but only to charge and download photos. iTunes will not install. Firefox will not install. Even some Windows Store Metro apps will not work – notably Google’s suite. If you or your company uses Google Apps, steer clear from Windows RT until Microsoft or Google budge and allow Google Drive syncing. There could be serious backlash due to Windows RT – if enough customers kick off a storm, Microsoft might remove the signature check when running ARM binaries, allowing third-parties to treat Windows RT like a first class citizen.

In reality though, a Surface RT is not going to be your only machine. It absolutely shines as a Remote Desktop thin client – you can have Visual Studio running on your 12-core beast machine in the office and just remote in to use it. Flash is built into the browser, allowing stuff like Adobe Connect to work without a problem – the web browser version being much better than the iOS version, which still hasn’t been updated to support retina or iPhone 5 long displays. One thing you can’t do is share your screen with Adobe Connect. Full desktop-class Web Apps such as Google Docs work fine in Metro IE10 and without any browser chrome, could be mistaken for a “native” application.

Games from the Windows Store run quite badly on Surface. Jetpack Joyride has a pretty bad frame rate when lots of sprites are on the screen. Hopefully there is room for improvement in drivers, but don’t expect iPad 4 quality graphics. You cannot see pixels when sitting back and typing thanks to ClearType, but the resolution is nowhere near the iPad Retina display.

You might have a few favorite Windows applications that won’t run on Windows RT. I was worried that I would not be able to live without Windows Live Writer, but it turns out that Word has had a great blogging tool since version 2007, and it is even better with 2013.

Office 2013 RT

The first thing you should do with Surface is run Windows Update. This updates the Preview version of Office RT to the final version. Microsoft plan to deliver incremental functional updates, giving another reason to get a Microsoft Surface and not another Windows RT ARM device. Other manufacturers could cause delays to updates like Windows Phone 7 has been plagued with – carriers and device makers literally stopping you from using the latest version of the software running on your device (if MS do a Windows Phone 8, you should get it instead of any third party offering).

Office 2013 starts up very quickly. Saving to SkyDrive or the local drives just works. This really has full compatibility with Office files. The only glaring omission is Outlook – however, Exchange accounts are fully supported in the Mail application and Gmail works great in IE10.

Why I’m keeping it

I can actually do something productive with this device, unlike the iPad which has been reduced to a wife-pleasing YouTube machine. It has a great built in RDP client for when you need to use software that does not run on WinRT. It has a USB port which works with actual mice, USB drives and even my Kensington PowerPoint remote. If the space runs out, I can just insert a Micro SD card and expand the storage capacity. The Surface fills a useful void between an iPad and a MacBook Air – something that you can just throw in your bag without a laptop bag cover but can still get some work done on. Word, PowerPoint and Excel come free with Surface RT – these separately would be $30 or so on an iPad as iWork but here you get the real deal. I really am sick of lugging around proper laptops when I could just remote into a beefy machine under my desk. With LTE tethering in Japan, this is becoming a reality.

Only buy a Surface RT if you know what you are buying and can live without full legacy application support. As a thin client for real world web applications, it might make some people very happy indeed.