首先达成一个共识:Windows 给 编程初学者 带来了很大的困难。比如 缺乏好用的包管理系统终端环境难看难用 和 环境变量不易配置 等等,这些都让 Windows 在开发体验上难以匹敌 Linux 甚至 macOS。

Windows ♥ Linux

WSL 的出现似乎缓解了这些烦恼。WSL —— Windows Subsystem for Linux,即适用于 Linux 的 Windows 子系统,是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件的兼容层。WSL 的出现意味着我们可以借助它来给我们的 Windows 配置一个美观可用、新手友好的 学习编程的开发环境,包括:

  • 💻 Unix style 终端环境:zsh 和 oh-my-zsh
  • 🔨 与 macOS 的 Homebrew 一样原理的包管理器:apt(针对 Ubuntu)
  • 📰 与 Visual Studio Code 配合的编辑调试环境

💎 参考文档发布于这里:https://spencerwoo.com/dowww

💎 其中的源代码托管于这里:https://github.com/spencerwooo/dowww

为什么要做这样一个参考文档?

这是我根据我这半年来在 Windows 上面利用 WSL 进行开发编码摸索出来的经验总结。其主要原因在于 Windows 上面没有我可以忍受的包管理工具。在中国特殊的互联网环境下,我的 Chocolatey 从来没下载成功过,而 macOS 上有 Homebrew、Linux 各大发行版也都有各自的包管理工具,于是 WSL 成为了我在 Windows 下进行开发工作的首选环境。

有关 macOS 上面的包管理 Homebrew 的进阶用法,推荐阅读由少数派编辑 @Minja 亲手操刀撰写的 > 像 Mac 高手一样管理应用,从 Homebrew 开始
Chocolatey 又双叒下载失败了

那么为什么我们不直接转移到 Linux 上面去开发呢?主要由于 Linux 桌面环境虽然在 2018 年的今天有很大的改善,但是相比 Windows 或 macOS 还有着十足的差距,程序假死、常用软件没有适配、部分发行版繁琐的配置等等。对新手的不友好让刚接触代码的我们望而却步。

不过同时,不得不承认,虽然 WSL 极大地方便、优化了我们在 Windows 上面的开发体验,但是很多东西都是需要进行一些配置才可以做到 丝滑流畅 的运行。并且,除了能够做到「又不是不能用」,我们还要追求一下开发环境的美丽养眼。这支教程也就应运而生了。

我都介绍了什么?

这些是我这里的参考指南所重点介绍的内容。以参加 ACM 的同学或是刚开始学习 C/C++ 的同学为例子,相信你经过这篇参考教程的配置(具体在这里 > Dev on Windows with WSL | C/C++)之后:

  • 可以从左边丑陋的 Dev C++ 进化为 Visual Studio Code:
  • 可以从左边傻黑粗的 Command Prompt 或 Powershell 进化为 Unix style 的终端环境:

配置简单、扫清障碍、专为学习、高效开发。 🎉🎉🎉

但是还有一些内容,比如:

这些问题太过主观,在这里我最想解决的是如何让 WSL 下的工具能够更加丝滑的与 Windows 开发工具配合,来提高我们的开发效率。并且说实话,教程中介绍的工具无需进一步的配置就足够美观了。如有需求,可以查看我的往期文章(上面链接)进行自行查看甄别与折腾。

为什么我这样推荐 Visual Studio Code?

这个问题可以这样来理解:Visual Studio Code 与其他诸如 Atom, Sublime Text 3 和 Notepad++ 等等现代化代码编辑器相比,有哪里体验更加优质?

Visual Studio Code

简单的说,Visual Studio Code:

开源、免费、生态庞大、支持完善、调试便捷、定制化程度高。

具体讲,Visual Studio Code:

  • 开源,是目前微软开源项目中最受欢迎的一个。
  • 社区支持,有着成千上万的插件、主题、拓展来把它定制成为我们想要的样子。
  • 内置非常完善的机制与 Git 集成版本控制工具集成,开发体验极佳。
  • 内置调试工具能够力压其他任何编辑器,在我使用过程中从未见过调试功能有 Visual Studio Code 强大的编辑器。

而与此同时,Atom 虽然也很好看,但是由于优化问题其性能远比不上 Visual Studio Code。同时 Sublime Text 3 是闭源软件,需要付费购买,就如曾经 Sublime Text 上面可能是最受欢迎的主题 Material Theme 的作者所说(详见 Deprecation Note):

它是一个:80$ commercial software that is 80% cracked or used in free mode.

这样看来,我推荐使用 Visual Studio Code 就更加有理由了。

体验

不得不承认,WSL 还在开发完善,有许许多多的 bug 等待修复,同时 Visual Studio Code 各大插件组也在努力适配 WSL。但是我想说,单就目前 Windows 上面糟糕的包管理系统来说,进行轻量开发或是学习编程知识,WSL 这一条技术栈都是更用户友好的。

Hyper 终端

对于 WSL 终端环境来说:

  • 终端环境下的所有组件都可以完美运行,包括版本控制工具 git、远程登录工具 ssh 和包管理工具 apt(针对 Ubuntu 来说)等等。

对于具体的编程语言在 VSCode 里面的开发来讲:

  • C/C++ 和 Node.js 由于插件开发组已经适配,因此可以完美的正常调试和开发,与原生的 Windows 工具别无两样。
  • Python 由于插件开发组正在进行适配,经过一些努力和配置也是可以运行,处于「又不是不能用」的状态。
  • 其他语言还需要考证,截至发稿,我的这只文档也只介绍了 C/C++/Python 的配置,因此还有很多需要补充的地方,希望有能力、有经验的同学前来帮我一起完善,感激不尽。🌹🌹🌹

希望这支参考指南能够在帮助你在 Windows 上面利用 WSL 进行开发的时候少走一些弯路。Happy coding!