I used to run my site on Wordpress. Roughly two years ago, I moved it to Jekyll. I did this as I was tired of managing Wordpress, and didn’t want to deal with running a Database driven site anymore. Also, I wanted to host on Github, removing the hassle of running a server.

It’s worked well for the most part, but I’ve always had an issue with running Jekyll on my Laptop. I like to run Windows (though I have a Mac, and also run Linux), and it was a huge pain to get Jekyll running smoothly on Windows. So much so that I gave up. On Ubuntu, installing Jekyll is as simple as apt install jekyll, and I would use my Linux VM if I really wanted to test something locally. The Mac is easier than Windows, but I much prefer apt to homebrew, and I find it easier to get good documentation for Linux tools rather than the same tools on a Mac.

I started looking at the Windows Subsystem for Linux last year, and immediately realized that this is a game changer. Y’see, while I love Linux on the server, and all the lovely development tools and workflow, I’ve never really liked using it as a desktop. Back in the day, I ran purely on Linux for two years, but eventually gave up cause I got tired of constantly tinkering with my machine just to keep basic stuff running (editing X conf files for multi-monitor support..argh). So I ended up with a split workflow. Windows/OS X for daily activities and general computing, and Linux on the server.

The Windows Subsystem for Linux (WSL) is brilliant cause it allows me to use Windows as a desktop, while still covering my Linux needs. Take this blog, for example. Here’s what I did to get it running on my local machine

  1. Install WSL
  2. Git clone repo with one command git clone reponame
  3. apt install jekyll
  4. jekyll serve

That’s it. Now I’m writing this blog post on Windows with Visual Studio Code, while Jekyll runs in the background auto-generating the site everytime I hit save. Chrome is open, I hit F5, and everything updates. It’s magical!

Inotify works, so Jekyll (running under Linux via WSL) notices that I’ve edited a file (in VS Code running under Windows) and it regenerates the site. THIS is how it should be.

WSL in the new Creators Update covers 100% of my needs. I can run nginx, mysql, gdb, gcc, jekyll, node, .NET Core (which is fun, since I’m running .NET code on Linux on Windows). I can use Visual Studio to debug a Linux applicaiton running on my local machine. I can open a linux file in a windows app and a windows file in a linux app. I can use bash scripting and the power of sed, and awk, and grep and all the lovely bash tools to parse any file on my system. It’s truly the best of both worlds for me. Native SSH too.

Microsoft has ensured that my next laptop purchase will definitely be a Windows laptop, and not a Mac (even as I write this on a 2015 Retina MBP, running Windows via VMware Fusion, with Linux on Windows on a Mac… what a time to be alive!).

WSL is a game-changer and I can only imagine how much better it’s going to get.

2017 is the year of Linux on a Desktop - but the Desktop is running Windows. Think about that, and marvel.