Ever since college, the way that I've been told to study computer science was to avoid Windows for writing code. In class, we used Ubuntu, a flavor of Linux to complete our assignments. Students who showed up to class on the first day with a Windows laptop (myself included), were told to install Ubuntu as a second operating system or face a semester of hardship. Simply put, no one wanted to be partnered with a person who was adamant about sticking to his or her Windows dev environment.
But with today’s announcement of Ubuntu on Windows at Build, the belief that Windows is a bad operating system for developers is coming to an end. At the surface level, this means you’ll be able to run a Bash shell on Windows 10, without having to install a third-party interface like Cygwin, which many seasoned veterans remember as a nightmare.
With this addition, developers on Windows will be able to count the number of words in a file by simply typing "wc" into a command line whereas before it was possible, but required a deeper knowledge of several commands working together. Even the seemingly trivial aspects of listing all the files in a directory, `ls` in Bash or `dir` in Windows, will make it more likely for a Linux or OS X dev to help troubleshoot someone else’s code on a Windows machine instead of the oft-reply that they should just get another operating system.
Beyond the benefits of a Bash terminal, the integration of an undiluted (or so Microsoft claims) version of Ubuntu built into Windows 10 will allow developers to finally have access to a slew of programs written for Linux, thanks to its partnership with Canonical. This may even be enough for OS X developers to be jealous of, considering not even they have access to Canonical packages.
the belief that Windows is a bad operating system for developers is coming to an end
Today’s announcement is being praised in developer circles, as it should be. To many, it can be interpreted as Microsoft admitting to prior mistakes when the company decided not to align with the rest of the industry, instead creating its own ecosystem of expensive dev tools and proprietary code. To be clear, that existing Windows ecosystem will continue to exist, but the addition of Bash will create a bridge between the two by welcoming traditional developers into a familiar environment instead of forcing them to learn new things which are only useful on Windows. Even better, Microsoft is aligning itself with one of the biggest proponents of open-source software, Canonical, to bring Windows back into consideration both as part of the dev stack and as an ally to open software.
Will Windows eventually work its way into computer science courses anytime soon? Probably not, considering a copy of Ubuntu is free. But today’s announcement shows how Microsoft is changing its stance from a "get off my lawn" attitude towards developers to one that’s finally realized that the neighborhood's gone and it’s time to adapt.
Kavya Sukumar and Curtis Schiewek contributed to this post.