January 17, 2018
Development on Windows
It has been a few months since I got a new laptop with Windows 10. For the most part it has been pretty damn nice. The UI is pretty good, the native apps are not terrible, Cortana is actually useful. It's fine, until I want to do web development. There are all of these little things that get in the way, all of these little compromises. Beware, rant coming up..
For example, SSH. Putty is the go to for SSH on Windows, but it's not a joy to use and now I have twice as many keys as I had before (because I need PPK, I cannot use my existing RSA keys). Microsoft has included an OpenSSH client and server beta with Windows 10, but it is not totally ready. It only works with ED25519 keys (again, I cannot use my existing RSA keys) because it does not support LibreSSL (yet). Fine, it's just nice to be able to SSH directly from Powershell. However, docker-machine no longer works from Powershell since it cannot find the SSH binary or is using the new OpenSSH binary but cannot use the docker RSA key to connect because it only supports ED25519 and for some reason the command line arg `--native-ssh` only works if you are trying to SSH into the docker VM and arrghghhghg. Ok, so now I have to use the Docker quick start terminal and Powershell. Really the issue is OpenSSH. So, ok it's beta, I will just uninstall it and go back to Putty.
I use Sublime Text. Sublime Text does not have a command line utility to open the app for Windows, which is annoying, but whatever. I will use Visual Studio Code because I really like being able to launch my editor from the CLI. But Visual Studio Code has a scrolling bug that won't get fixed until Electron is updated (so, never I guess?) and is temporarily fixed by setting the app to fullscreen and back. So now thats part of my workflow, quickly maximizing/unmaximizing a window. Ok, so back to Sublime Text and navigating Explorer to open projects.
I am not able to use native Docker witout upgrading to Windows 10 pro. Native docker only supports HyperV, so I cannot use VirtualBox. I have projects that are dependent on Vagrant+VirtualBox. I am pretty sure that Docker Toolbox is on the way out. Not sure what to do here, other than dockerize my vbox projects.
Powershell is bad for me. It is powerful, but it is very verbose and requires significant knowledge of Windows internals to use effectively (this is not a negative, just a reality). The output of Powershell is terrible. Sometimes I cannot even see what is on screen because the contrast of colors is all fucked. Like, blue powershell background, with some content presented in, blue! WTF. Or the background of the text is black and text color itself is straight up #0000FF blue. Its literally unreadable.
I have a lot to complain about. I do want to say that I think Windows has come a long way and the future looks bright but it is just not totally there for me, yet, to do web development comfortably. A lot of my workflow has to change. I am not going to give up on it yet though. I think the take away here is that change can be difficult.
PS. Windows feels like a Linux. Inconsistent UI, requires arcance knowledge to use the CLI, but the CLI is required to do anything substantial, and in general things simply do not work.