Skip to content
返回

于是我从 WebStorm 转向了 VS Code

自大学以来,我换了不少编辑器。一开始学习 C# 的时候,用的是 Visual Studio,这款编辑器确实非常好用,即使是用来写 JavaScript 也有很全的代码提示。

后来我决定专攻前端开发,这时候 Visual Studio 就显得太过于笨重了。在学校老师的建议下,我开始用 Dreamweaver,老师极力推荐它的原因是它的「所见即所得」特性——不需要自己写代码,只需要拖一些控件进去,它就会自动帮你生成页面……可是它生成的代码太差劲了,我从来没拖过控件,它的代码提示也不如 Visual Studio 全面,时不时的还会卡顿。

再后来,我在网友的推荐下开始用 WebStorm,简直爱不释手,从此再也没有换过编辑器——

直到半个月前,我试了一下 VS Code

让我决定去尝试一下 VS Code 原因倒不是因为这个编辑器本身,而是因为它的一个插件——Vetur,由 Vue.js 团队开发,用来给 *.vue 文件提供代码提示与 TypeScript 支持。用过 Vue.js 的同学都知道,Vue.js 配置项里面的方法的 this 其实指向这个 Vue 实例本身,但是 WebStorm(我想其他编辑器也一样)只会把方法里的 this 识别成这个方法所在的对象,所以编辑器不能正确的提供 this 的代码提示。

在尝试了 VS Code 之后,我再一次体会到了当时发现 WebStorm 的时候的心情——爱不释手、给它折腾了一堆插件、想立刻写一些代码来体验一下这个编辑器,最后,我就停不下来了 😂

我想从我的使用角度解释一下为什么我最终从 WebStorm 转向了 VS Code,也许能给看到这篇文章的朋友们一点参考。

VS Code 最让我看中的特点就是轻量——它的轻量体现在它的启动速度内存占用功能

注意:我是在 2015 年款 MacBook Pro (8GB 内存)上对这两款编辑器进行比较的,可能与你的感受不太一样。

启动速度

VS Code 启动的时候非常快——这里的非常快是相对于 WebStorm 而言的。我使用了同一个中等大小的项目(下文统一称之为测试项目)做测试,这个项目使用了 TypeScript 和 Vue.js,大概有 30 个文件。

在使用 WebStorm 的时候,一般要经过下面这些步骤:

  1. 打开 WebStorm,这一阶段差不多要 7 秒。
  2. 选择上面提到的测试项目并打开,需要 3 秒。
  3. 打开项目之后,WebStorm 会索引代码,这段时间内它的一些功能(比如代码提示与代码着色)还没有准备好,所以我一般会等索引完成之后再开始写代码。这一阶段根据项目大小需要的时间也不固定,但对于测试项目,这一过程差不多要 10 多秒——如果你没有将 node_modules 文件夹 Mark Directory as Excluded,那么需要的时间会更长。

所以从我打开 WebStorm 到它真的可以用的这段时间,已经快有半分钟了!在使用 VS Code 之前,我从来没觉得这段时间很长。

那么同样的项目,VS Code 打开需要多长时间?答案是 4 秒。这是在我安装了 19 个扩展的情况下得出的结论,而这 19 个扩展基本涵盖了 WebStorm 中我用得到的功能。

我仔细观察了一下为什么 VS Code 相对于 WebStorm 会快很多:

  1. 在 MacOS 中,直接用两个手指点击 VS Code 的图标就能展开最近打开过的项目,而 WebStorm 要先打开一个选择界面。
  2. VS Code 没有那么明显的索引代码的过程。也许它根本就没有索引代码这一过程,又或者,它在后台偷偷索引但没有提示给用户知道,不过当我打开文件的时候,代码提示和代码着色都是已经准备好了的。有一些扩展会在第一次使用时花费一段时间索引你的项目代码,但这一过程在下次打开项目时会非常快,所以这段时间没有计入 VS Code 的打开时间中。

内存占用

我经常会需要同时开启两三个项目,然后再开一些其他软件(听歌的、微信、Chrome 之类的)。如果我使用 WebStorm,时间一长,8GB 内存就会被用的只剩两三百兆,我不得不用 CleanMyMac 清理我的内存,不然电脑会变得反应迟钝。

同样的情况换成是 VS Code 就没有这个问题。我知道这一感受非常主观,所以在我写这片文章的时候,我尝试分别用这两个编辑器同时打开三个相同的项目,但它们的内存占用从数字上看是差不多的——都是 1.6GB 左右。有一点不同的是,VS Code 的进程本身占用内存很少,但它有很多个 Code Helper 进程,我每关掉一个项目,Code Helper 的数量和它们占用的内存都会相应减少。

上面的数据仅仅只是打开了三个项目的情况,如果后面多使用一段时间,WebStrom 的内存占用会越来越多——这也跟你使用了 WebStorm 中的多少功能相关。按照我这半个月来的使用体验,WebStorm 会让我觉得内存不够用,而 VS Code 就没有。

当然,这些都只是我的主观感受,由于没有足够的数据支持,你可以认为它们在内存占用方面打了个平手。

功能

一个编辑器的功能是越多越好还是越少越好?功能多当然很不错,但并不是所有人都需要一些功能,而且多余的功能会导致编辑器更加笨重。

WebStorm 和 VS Code 都提供了插件系统,但仅从核心大小来看的话,VS Code 无疑要比 WebStorm 轻量许多——这一点你从它们的设置里就可以看出来了。

WebStorm 的插件系统更像是锦上添花,因为它已经内置了很多很有用并且也很好用的功能了。WebStorm 还内置了很多官方维护的插件,但大部分我都不需要,我还得自己去关闭一些。所以,第三方插件我一个也没装过。

反观 VS Code,我觉得它的插件系统才是它的核心功能——VS Code 本身缺少很多功能,如果你不安装一些插件,基本上很难愉快的写代码。

从个人的角度来看,我非常喜欢 VS Code 的做法——我在写一些 JavaScript 项目的时候也是这么想的——核心应该尽可能的小,然后通过插件的方式来补充功能以适应不同的使用场景。Koa 和 Chrome 浏览器就是使用插件扩充功能的例子。

但是,依赖于社区开发的插件就会出现一个问题——插件的质量总是参差不齐的,插件的维护者也不一定会长时间维护下去,所以在给 VS Code 安装插件的时候我花了很长时间尝试了很多个同样功能的不同插件,不过这个痛苦的过程也只是一次性的。

对于未来,我希望 VS Code 团队能像 WebStorm 那样有一些官方维护的高质量插件,避免用户在选择插件的时候眼花缭乱。不过,目前 VS Code 肯定是没有多余的精力做这些的,所以作为用户的我们也只能自己不断的尝试了。

总结

本文从三个方面阐述了我个人认为 VS Code 对比 WebStorm 的优势,但实际上 WebStorm 也并不是没有比 VS Code 好的方面:

  1. 就像上面提到的,WebStorm 有很多内置的官方维护的插件,能有效避免用户自行挑选第三方插件。
  2. 不能否认,WebStorm 确实功能齐全,而有一些功能并不是 VS Code 的插件能取代的。让我个人感觉最强烈的一点就是 WebStorm 内置的 Git 集成要比 VS Code 好太多,即使安装了好几个 VS Code 的 Git 相关插件,也比不过 WebStorm 内置的 Git 功能。
  3. ……想了想似乎就没有更多了 :joy:

我的建议是,如果你不喜欢折腾、更喜欢使用纯 GUI 方式写代码,WebStorm 无疑更适合你,使用 VS Code 的时候,你可能得学一些 Git 命令来弥补 VS Code 在 Git 集成功能方面的不足;如果你更看中 VS Code 的轻量,并且也愿意付出时间去适应、安装插件,那 VS Code 会比较合你的胃口。

最后,欢迎你留下自己的看法 ;)


分享这篇文章:

上一篇
在 Docker 中运行 Node.js 应用
下一篇
Chrome 扩展程序中内容脚本与 DOM 树