Surface Book, Windows 10, and WSL: A year in review from a UNIX Geek

8 minute read

TL;DR Unix geek tries Windows 10 for a year. For the most part it works, but lots of growing pains. Going back to the land of GNU.

Introduction

A year ago, I started an attempt to give Windows another try. I jump around different platforms to stay current and cognisant of the industry shifts professionally. The need to get back to Windows happen to coincide with need for a new laptop.

My workflow is probably unique for most in that I am a CTO with the T being very much capital and bold. My work environment, to give you some baseline understanding of my thoughts, is as follows:

  • Heavy Docker, Ansible, and Vagrant developer and integrator
  • Program in Python and Node.js most of the time
  • Primarily work in VS Code and vim for almost all of my text editing needs
  • Business Management work is done primarily in MS Office + Visio + Project
  • Spend 80% of my time in terminals and consoles
  • 10% of my time spent in a browser (Asana, Github, Gitlab, Slack)
  • 10% in PIM

Using Windows

Windows 10 is pretty sucky for me. Let’s just get that out of the way now. I am a very bias person to cast this judgement, but having spent many years on IRIX, HP-UX, Solaris, Linux, *BSD, MacOS, NeXT, etc. I can safely say this is my least favourite operating system as of late. It isn’t for a lack of trying having lived with this as my primary system for a year.

A few items that make my head hurt

  1. Process management is a nightmare. I can be puttering away in a tmux session writing some docker files and randomly my CPU pegs and fans start kicking. You are left wondering.
  2. File system speeds are atrocious, especially through WSL. My whimsical dream was that WSL would give me the same setup as a Mac (without the dumb touchbar), but in reality, I find myself having to break out of WSL to do anything I/O heavy.
  3. Git with the line-break styles has given myself and the team heartaches. Yes, there are ways around it, but I find the inconsistency something that could be easily fixed in the future.
  4. Access between the WSL and Windows worlds are non-existent. My hope was to be able to right-click and open in something or vice-versa with xdg. A portion of my workflow now is simply moving folders back and forth for the edits.
  5. Windows App Store…a jokingly bad app store. I would just scrape the damn thing and start over. Hire the core Chocolatey team and enhance their work.
  6. Chrome and Firefox have the uncanny ability to collapse everything I am doing under the burden of activity.
  7. Windows 10 PIM (mail, calendar, etc.) is a joke. Unfortunately, Oauth support for Outlook 2016 is also horrible. I am stuck using Postbox with Davmail for exchange and other accounts.
  8. Windows Explorer is nearly as bad as Finder at basic file management tools. If not for WSL I/O issues I’d do most of it in Midnight Commander.
  9. The Start Menu open-by-typing search functionality is hilariously bad. I have to remind myself that this i7 processor is incapable of keeping up with my typing and SLOW down to give it time to catch-up. It is such a basic functionality for a modern desktop to get wrong. Even worse is that the indexing appears to ignore large portions of, get this, the Start Menu. My Private Internet Access icon which is pinned to Start is somehow not able to be found by typing. Bizarre.
  10. Control Panel/Settings/whatever – Unify the dialogs and workflows please.
  11. Cortana is silly. I dare say worse than Siri for basic features.
  12. I have been caught three times the past year walking my laptop down a jetway on my arm waiting for the updates to install that I didn’t want before my flight. Recent insider builds are getting better about this, but the Windows update mechanism is broken.
  13. Network support in WSL is limited to say the least. As I do a good bit of security research, my standard toolset simply doesn’t work or performs too slowly to be usable. This issue is compounded by the fact that I cannot run VMware and pass a USB wifi dongle or interface to a Linux VM without losing Docker.

What Windows is doing well

  1. WSL exists! Seriously for any of us that remember Cygwin and MiniGW this is such a big upgrade. I am hoping that the WSL team embraces the Xming work and packages it. Same for service control with systemd/Windows Services integration.
  2. Drivers have vastly improved and things like Printers are seamless. The intelligence of location based networking for choice of defaults is also a nice touch.
  3. UWP when implemented correctly throughout an App is nice. For example, I find myself using the UWP version of Office Apps purely for speed and touch friendly support.
  4. Windows Hello is a god-send for those of us had to deal with GINA over the past decade. I wish it were more granular at this point for MFA, but it is a really great first step.
  5. Windows Networking overall has really grown-up. I am able to do some pretty advanced firewalls and network stack changes such as jitter, bandwidth, and latency emulations that required a Unix box earlier.
  6. Cmd actually supports colour xterm settings which is great! No more separate terminal needed for basic CLI work.

Not Microsoft’s Fault, but painful

  1. Ansible/Vagrant/Docker on Windows are usable, but barely. The promise of reproducible builds and environments works pretty well between my MacOS/*BSD/Linux systems, but requires debugging on Windows.
  2. Chrome and Firefox (including nightlies) can kill the machine. I am not sure why, but they run so much poorer on my Linux workstations.
  3. There is no Little Snitch for Windows. Glasswire is a decent try, but I found the performance of Glasswire so negatively affected my system I had to remove it.
  4. Still extensive issues with software installs (re-install and see if that works!) and DLL management. Vendors are sloppy and Microsoft doesn’t enforce much.
  5. Hyper-V and VMware cannot coexist it seems. I am left with the decision to keep Docker and ignore my VMware work or boot a second workstation. This is painful for those of us doing embedded hardware development and stuck with Hyper-V’s non-existent USB device management support.

Surface Hardware

The Surface Book hardware appears to be holding well to a gruelling travel schedule like my own. The hinge, which was my source of fears, seems to be good so far. With that said it is weaker and only holds the screen up at limited angles as it bends under the weight.

The tablet feature I use sparingly as the large tablet factor is difficult to hold for reading or consumption of video. I find myself more often than not flipping the screen for presentations to clients and engineers versus tablet features. That said, the touch interface works pretty well in Windows 10 for most actions. For those UWP apps that are feature-rich it is even enjoyable to use the touchscreen in lieu of the trackball.

The touchpad and dock/power adapter are the best I have seen in the PC world. Apple is now, in my mind, not the leader in this sense. The design of the Surface series shows an attention to detail in aesthetics just as much as usability.

Battery life is decent, but with the performance management issues I find it lasting much less than I would hope for. With the base I am lucky to see 7 hours. I doubt all the claims of the new Surface Book 2 lasting longer based on my dev/admin heavy workflows.

My Wifes Surface

She is an artist and loves to draw. In my last post on the topic I mentioned she ended up with a Surface also. She regrets it immensely. I warned her against the move from her Apple sandbox, but she was so attracted to the drawing aspect. In the end the drawing is hard to do away from a power source due to the battery life of Windows, the software is expensive to buy again for Windows, and the OS is so foreign to her she just can’t do basic functions she is familiar with.

Of specific note, she wanted the fabric touch cover when she migrated. The fabric initially had a nice feeling and look to it, but after a year it is dingy and soiled from being used. Microsoft has done a poor job with cleaning and maintenance instructions. I would highly recommend everyone stay away from the material. Period.

Closing Thoughts

I am blown away by the Microsoft of today. It is a refreshing change since my early days of Windows 3.1/3.0 until now. By and large, Microsoft is shifting policies and software methodologies faster than I could have imagined possible. Azure, VS Code, SQL Server for Linux, and WSL are examples of Microsoft seeing a market change and embracing it. In addition to the desktop/server platforms, their work on mobile apps is astounding. My Android phone’s default applications for the most part of Microsoft-owned or built. Who would have thought that possible just a decade ago?

Would I buy another Microsoft product, not likely? I am eyeballing a ThinkPad 25 or X1 with Gentoo on it as I carried earlier. When my family and friends ask, I will still push them to Apple product (if only for selfish reasons of not wanting to be their IT department) as the safer and longer lasting option. But, if they asked about Windows 10 I would not hesitate to tell them it is a solid choice.

Updated: