I’m writing this blog entry on a Microsoft Surface Book Pro i7, which is admittedly a bit odd for me. While I grew up using Windows PCs, I switched to Mac about 12 years ago and never looked back. As both a developer and a producer of creative artifacts (music, for example), I’ve been a big fan of the Mac OS and ecosystem. Being Unix-based and having a simple and elegant design philosophy, for the most part I’ve never had any reason to think about switching back to Windows (except for the odd game here and there).
The only work I have done on Windows in recent years has been in conjunction with my work on Appium, the cross-platform mobile automation tool. We’ve supported Windows for years, but I’ve hardly ever worked with Appium on Windows myself. Occasionally I’d fire up a VM and see if I could get Appium to install from NPM, but that’s about it. And to be honest I always felt a little dirty aesthetically afterwards; the blocky OS felt like a representation of the clunkiness inside.
On the other hand, my impression of Microsoft as a company in recent years has become better and better. From making a decisive move into open source involvement, to releasing Chakra, to doing the “right thing” with their more recent web browsers, to building Visual Studio Code in Electron with web technologies, and more recently dropping the bombshell of the Linux Subsystem (Bash on Windows), my esteem for the company’s strategy has grown. They’ve clearly decided to meet developers where they are at, building whatever kind of apps they are building, on whatever platform. It’s refreshing.
So imagine my surprise when Microsoft reached out to me to share they were working on an Appium-compatible automation driver for Windows desktop apps! I was thrilled that a big player like Microsoft was looking at the WebDriver protocol and what we had done with Appium as a good model. Maybe it was because I was just flattered on behalf of Appium, but my esteem grew even more. Last year I spent some time in Redmond with the team at Microsoft working on this, and had my first exposure to the modern development experience on Windows. I was expecting to be disgusted and horrified, but I wasn’t. It seems that in the 12 years since I’ve stopped paying attention to Windows, they haven’t been going randomly in circles. I’m a big Vim / Tmux / terminal-only development guy, and the Microsoft aesthetic of everything being a GUI button in Visual Studio, and allowing IntelliSense to turn your brain to mush, was just not my thing. But playing with VS Code, and seeing the wealth of plugins provided (yes, even a solid Vim emulator), made me realize that Microsoft is trying to attract all speeds of developer, including even potentially myself.
This became a little more concrete when they recently reached out to offer me a chance to play with a new Surface Book. I unboxed it, set it up, and have been using it for some time now. This is the first in a series of articles I’ll write on my experiences with it. Initial impressions, comparisons with what I’m used to from high-end Mac laptop-land, and tales from my journey to getting a dev environment set up that meets my needs.
What follows is a silly stream of consciousness of my initial impressions:
- Wow this is heavy! Actually it’s not that heavy. Actually to be fair it’s probably 1/4 the weight of the last Windows laptop I owned. Still, it feels a bit heavier than my Mac.
- This looks surprisingly clean and well-designed.
- Where is the power button? How do I turn this on? Ohhh, there’s a button on the screen that’s more like a tablet power button.
- This thing comes with a pen? oh cool!
- I’m now starting everything up.
- I get to pair the pen. Something about “Windows Ink”; I’m not sure what that is, maybe a drawing app?
- This is kind of long setup process. And of course I am turning off everything that sends data to Microsoft. No data sending please. And no I don’t want to use my face to sign in (how barbaric). No, I don’t want to use OneDrive. No, I don’t want to use Cortana.
- Ok. I’m in and playing around. Hmm, what is this weird button with an icon with an arrow on it?
- WOAH the screen comes off!!! I did not realize this thing had a detachable screen. Clearly I have not seen any of the advertisements for this laptop.
- WOAH there’s a handwriting recognition deal!!! I can use the pen to write and it turns it into text. Well, I’m probably not going to do any coding with this but this is kind of cool. I didn’t realize I was getting a tablet to play with in addition to a laptop.
- Now I’m turning on Windows Insider because my main goal is to get to Bash/Linux as quickly as possible and try to get set up with that.
- After a while I notice that I’m scrolling views with the trackpad just like I’m used to. This is a welcome change from before, where it had the opposite direction of scroll on my Mac.
- In a flight of fancy I check out the hardware specs to see if this machine could actually run some of the modern games that are only available on Windows. Not that I would do that of course, I’m just curious! And in any case it looks like the integrated graphics card isn’t quite what I would need to play No Man’s Sky, for instance?
So this was my initial experience, admittedly more positive than I expected, and the integrated tablet model worked a lot better than I’d expected it would, too. When the screen is off, it really does feel like a tablet (albeit a heavy, power-hungry one), and when it’s on, it really does feel like a laptop. (A remark on the weight: despite feeling heavier to me, according to specs it’s actually slightly lighter than my 15″ Macbook Pro. Maybe it felt heavier because the way the weight is distributed is different than what I’m used to, and I interpreted that mismatch in sensation as greater weight?)
One note on power consumption: my first several days using the machine, I would close the laptop lid for the night and then pick it up again sometime the next day. Inevitably, the power had completely drained and I couldn’t use the computer. This to me was a pretty big deal—I didn’t want to have to remember to completely power down the machine every time I wanted to stow it for more than an hour or two. Happily, with a recent update (whether for all users or just Windows Insider people, I don’t know), power management seems to have been ameliorated somewhat.
After a few days of casual use, I decided that I still like the detachable screen, primarily for web browsing or engaging with media, but I’m not sure whether I’d use it as a replacement for an iOS or Android tablet, mostly because of the app ecosystem and the optimization on those devices for power consumption and heft. Then again, I don’t own an iOS or Android tablet because I wouldn’t use one enough to justify the purchase anyway. I also decided that while the pen is a really cool idea, I’m likely not the target audience for it. If I were going to take notes, draw, or do other creative things with this machine, I’d probably get more into it.
OK, that’s the end of the first entry in this little series. Overall I was really impressed, after expecting to be underwhelmed. It struck me that this is a machine I could carry around and do actual work on. That is, assuming I can get all my apps and my development environment set up in a satisfactory way. And that will be the topic of my next entry: how did I turn this from a stock Windows machine into something a Node.js hacker wouldn’t be ashamed to use?