====== Why to consider Windows for distributed Docker / Kubernetes software development ====== Over the past five years my primary software development laptop has always been a Macbook Pro. And I've mostly really enjoyed the experience. However, this winter I needed a new development laptop again and chose an MSi gaming laptop running Windows 10 Professional instead of a Macbook. Why? I thought that sharing my experience might be useful to someone else so I've decided to describe it here. ===== What I haven't been able to do on a Mac ===== Some of the reasons I chose to move back to Windows have to do with things I haven't been able to do (or simply can't achieve) using a Mac. These are: - Relearn IDE keybindings in their MacOS forms - Obtain a laptop with more than 16 gigabytes of RAM - Obtain a laptop with a high-end GPU for 3d graphics development The first concern is purely personal. Some readers will have been using Macs for a long time and already be accustomed to the Mac keybindings for their favorite text editors and/or IDEs. For me, however, I had been using Linux as my main development environment since 1996, which largely shares its key bindings with Windows. In five years of using a Mac, I have not been able to achieve the same keyboard speed in my favorite software development environments compared with using Linux or Windows. I have tried various Mac keyboard hacks. All of them get me part of the way to speed; none of them have gotten me all the way there. The second and third concerns were the deal-breakers for me. For not much more money than a high-end Macbook Pro, one can buy an MSi with 64 gigabytes of RAM and a very nice GPU. Why do I care? ===== Because Docker is the new OSGi and Kubernetes looks to be the next standard distributed O/S ===== In a new world of containerized applications, RAM is more important than ever. The single largest factor limiting what I can run directly on my laptop is RAM. 64 Gigabytes of RAM lets me run tens of servers inside Kubernetes on Windows. Linux can be my main development O/S again. I just host it under Windows. I'm experimenting with building a portable development environment inside a Docker pod inside Kubernetes. If that experiment succeeds, I'll have a portable development environment that will work anywhere Docker and Kubernetes run. Including a Mac, ironically. ===== Virtual Reality and Augmented Reality are coming into their own, and the best tools are on Windows ===== WebVR is a thing. WebGL is a thing. A-Frame makes WebVR dirt easy for web developers. Unity is one of the best VR and Augmented Reality toolkits--and it runs on Windows.