Ubuntu logo

I've got a long history of fooling around with Linux on my Windows PCs. I grew up in a Windows home, using Windows gear and with an MSDN license, and could only play with Linux terminals via SSH and (later) local virtual machines. Neither of these approaches are very newbie-friendly, though - they take a lot of time to set up, require substantial tweaking specific to your system, and often wear you out before you're even up and running!

It was a pleasant surprise for me, then, to discover that Microsoft was launching a native Linux interface in Windows 10! The Windows Subsystem for Linux is, in very simple terms pulled directly from Microsoft, "bash on Ubuntu on Windows". It's not a full-featured virtual machine, but a stripped-down Ubuntu implementation that provides a native Bash terminal available anytime, directly from Windows. If that sounds scary, don't worry - it's a lot of technical words, but it's actually really cool. Imagine adding wings & flight controls to your car. It wouldn't be a Learjet, but your old Honda could definitely do some new tricks! Having a Bash shell prompt immediately available from your Windows PC is the same sort of cool hybrid.

Of course, there a trade offs. This a new experiment, and with that comes a learning curve. Of particular note is the WSL's no-frills terminal. Folks used to using terminals in OSX (Mac) or Linux environments are used to lots of customizability. The terminal in these systems is given the same treatment as any other major part of the operating system, so basic features like copy/paste & context menus work the same way you're used to.

Windows doesn't have the same history. The modern Windows terminal ("cmd.exe") is a stripped-down experience meant mostly for systems administration and emergency debugging. Windows expects you to rely on, well, windows: graphical applications over command-line apps. This aesthetic is demonstrated in their Bash terminal as well - the context menu is non-functional, "Right Click" acts as a sometimes-it-works "Paste" button, and the console settings window is confusingly organized:

Um...wat? Are these settings being saved automatically? Am I switching between themes? Should these radio buttons be tabs? /shrug

All that said, this is a HUGE step in the right direction, and gives people previously isolated from open-source ecosystems immediate access. In my experience playing with the integrated Bash terminal, I found few blocks to spinning up a quick Ruby server, Python script or Golang app. The use experience and smooth and directly removes one of the big reasons people talk up Macbooks - the terminal still isn't want I'd call a first-class citizen here, but it's definitely in the neighborhood.

Now, if they could just get those full-color emoji.... :)