I grew up on Windows. I have fond memories of reinstalling Windows 95 every few months to rid it of the various games and applications I had installed that had no easy uninstall process. My first IT jobs all revolved around Windows. Windows was everywhere I wanted to be.
Over time though I have migrated away from Windows to Linux and MacOS. Some of this was out of practicality, as almost every server I touched ran Linux, and it just made sense to adopt the same *nix environment as my desktop. But the move to Linux exposed me to a world where every tool I could ever need was a yum or apt-get install away. And bash... I may only know a small fraction of the power of bash, but I would never again be running the Windows command line.
Windows was never really that far behind. Powershell seems like it is a powerful tool, I just never learned it because it didn’t run anywhere I was doing my work (although that is changing). Chocolately boasts an impressive database of applications. And Cygwin provides huge collection of GNU tools compiled for Windows. But these just didn’t seem like a reason to adopt Windows as a development platform.
One recent development that might just change my mind is the Windows Subsystem for Linux, included in Windows 10 as part of the anniversary update. This feature promised Bash on Ubuntu on Windows, and I just had to see what it could do. So I ran the following command:
apt-get install git.
And just like that I had downloaded and installed GIT, from the Ubuntu repositories, directly into Windows. No virtual machines, no cross compiling. It was glorious.
Within a few minutes I had VIM, wget, curl, tar, GIT and Java installed, and life as a developer on Windows seemed pretty sweet. Actually it was starting to look like I could have the Linux environment I love for development with the Windows environment I need for gaming all in one package.
Unfortunately Java on Ubuntu on Windows is unusable at this point, which quickly derailed my experiment into Bashifying my Windows experience. Microsoft has gone to great lengths to point out that their Linux implementation is still experimental, so some issues are to be expected. Still, I hold out hope that one day that the implementation will be seamless.
My MacBook isn’t going anywhere, and my Linux VMs are still where I do most of my Windows development. But it is still heartening to see Microsoft striving to make Windows great again. Who knows, my next development machine could be a Surface Pro.