My experiences programming on a Surface Pro 3
Posted on Friday, 19 Sep 2014
Last week I decided to pick up a Surface Pro 3. I've been following the Surface Pro hardware line for some time now but have been reluctant to commit to one as there were certain factors in the previous incarnations that meant it probably wasn't the best choice for me at the time.
With the Surface Pro's third iteration, all of the niggles I had with them were gone so I finally decided to jump in.
In order to fund the Surface Pro 3 I decided to part with my existing portable development machine - my Macbook Pro Retina that I was running Windows 8.1 on via Bootcamp.
Over the past few years my Macbook Pro has proven to be a great development laptop so making the choice to switch to a Surface Pro 3 wasn't an easy choice to make, and despite receiving glowing reviews I couldn't find any reviews or comments from a software developer's perspective on how it performs as a development machine. So having lived with the Surface Pro 3 for a week or so now I decided to highlight what I feel the pros and cons of the Surface Pro 3 are from a software developer's perspective, and how it performs as a portable development machine.
If you're reading this and unaware as to the hardware specifications/features of the Surface Pro 3 then you'll probably find more suitable information somewhere else. This post presume you already know the stats of the Surface Pro 3 and are keen to find out how it performs as a development machine.
Programming using the Surface Pro 3 keyboard and trackpad
My first concern when committing to the Surface Pro 3 was the keyboard. As any software developer will know, the keyboard is his main tool so it's important that it's responsive and comfortable to type on for long periods of time. Being a bit of a shortcut addict it was also important for me that the keyboard not be too small as to force my hands into weird positions when pressing some of the shortcuts I've grown to rely on.
Thankfully I was pleasantly surprised. Naturally it took me a short while to feel comfortable touch typing on the keyboard, especially when programming and requiring the use of certain special characters, but before long I was programming away without and concerns. Only occasionally hitting the wrong key - but that will work itself out in due time.
The keyboard is just the right size to feel familiar to the faster typers out there and provides a good level of feedback with a satisfying "click" as you press each key.
As for the track pad, I wouldn't go as far as saying it's terrible - but it's certainly not the best trackpad I've used. It's perfectly fine for navigating around Visual Studio or IntelliJ IDEA but it can feel a little unresponsive at times.
UPDATE: Since writing this post I've upgraded my Surface Pro 3 with the Surface Pro 4 Type Cover - something I would highly recommend as a lot of the issues mentioned regarding the keyboard and the trackpad have been resolved.
Typing on your lap (or lapability as Microsoft call it)
One of the criticisms of the Surface Pro 2 was the difficultly in typing on your lap. Because the keyboard clips into place by a strong magnet and the screen's kick stand only had 3 points at which it could be moved to, it made typing very difficult due to the limited angles.
Thankfully this has been sorted in the Surface Pro 3. With the kick stand being adjustable to any level, you can lower or raise the screen to any level that suits you. What's more is the keyboard has an additional magnet in it that allows the keyboard to be docked at a slight angle to further aid the positioning of the keyboard to a suitable level based on how or where you're sitting.
In fact, as I write this I'm laying in bed with the keyboard comfortably on my lap with no movements or fear of the keyboard become disconnected from the display screen.
One of my fears before purchasing the Surface Pro 3 was the strength of the keyboard magnet. I was concerned that if, for some reason, I were to knock the screen that the magnet wouldn't be strong enough to keep the display from disconnecting and falling over, possibly onto the floor. Thankfully I quickly realised this should not be a concern as the magnet is incredibly strong and holds the keyboard and display firmly together. On the contrary it actually requires quite some force in order to separate the screen from the keyboard.
Is the Surface Pro 3 screen too small for software/web development?
Before committing to selling my Macbook Pro Retina to fund my Surface Pro 3 purchase, I did have concerns about whether the screen would be large enough for programming on. The Surface Pro 2's screen was a little too small for my taste, but Microsoft have increased the size of the screen for the Surface Pro 3, providing me with more than enough screen real-estate to write code without the need for constantly scrolling across or up and down the page.
Running Visual Studio on the Surface Pro 3
Hardware wise, the Surface Pro 3 model I decided to go for was the i5, 8gb of memory and 256GB SDD drive, which was actually a downgrade from the i7 Macbook Pro Retina I was using before - but the additional portability of the Surface Pro 3 made the sacrifice one I was happy to make.
The majority of my development time on the Surface Pro 3 has been some rather large Visual Studio 2014 projects, followed by some Android programming in IntelliJ IDEA. During my time programming I've yet to experience any slow compile times. Visual Studio is a power-house of an IDE and loves to gobble up memory, but this doesn't appear to hamper the Surface Pro 3. All in all, I've not noticed any performance difference between the Macbook Pro Retina and the Surface Pro 3 when programming and compiling applications.
Below is a screenshot of the system resources with Visual Studio 2013 and SQL Server running; as you can see there's more than enough memory and CPU remaining to ensure build times are fast and the system remains responsive.
As someone who does a lot of Android development I was a bit disappointed to see that the Surface Pro 3 only features one USB port. As someone who prefers to test his Android apps against a real phone rather than the Android emulator it's a slight annoyance that there isn't a t least one more port available. This would save me from having to lug a USB adapter around with me.
Ultimately I'm extremely happy with my purchase of the Surface Pro 3 and I don't have any regrets about selling my Macbook Pro Retina to pay for it. The Surface Pro 3 is a fantastic device that I find myself using more and more, both as a laptop and a tablet.
The fact that the Surface Pro 3 is more portable than my Macbook Pro means that I take it everywhere with me, allowing me to have a sneaky coding session when I have a bit of spare time.
**Edit: **If you're considering purchasing the Surface Pro 3 as a development laptop then I highly recommend you listen to Scott Hanselman's latest Hanselminutes podcast 'Selecting the Ultimate Developer Laptop with Damian Edwards' where he and Damian Edwards openly talk about how they find the Surface Pro 3 a great development laptop.