从时间顺序上,我使用的比较多的JavaScript编辑器有:Aptana StudioWebStormVSCode

从2006开始写JavaScript,那个时候并没有特别好用的编辑器,因为当时使用Eclipse开发J2EE项目,所以也是使用Eclipse编写JavaScript代码,但是体验非常差,基本上和文本编辑器差不多,只是有了代码高亮而已;

使用浏览器的调试功能进行代码调试。

直到2011出现了Aptana,最初是作为Eclipse的一个插件,后来发布了独立打包的版本。自从用上了Aptana才感觉写JavaScript原来也是可以有代码提示的(Java程序员说:代码提示不应该是IDE最基本的素质吗???),并且可以引入当时比较流行的库:JQuery、Protocol、Ext、Dojo等等,所以素质是相当不错了。但是和当时的Java编辑器比较起来,仍然是弱鸡。似乎后来Aptana变成了收费软件,所以不再使用了。

当然更重要的原因是出现了神器WebStorm,天生带有jetbrans光环,当时(大约2012)OSChina联手Jetbrans推出的打折活动,让我用上了正版神器,当然有效期是一nian(一nian后你懂的)。当时行业内整个前端开发氛围已经非常活跃,WebStorm顺应潮流,几乎支持市面上所有的常见框架,并不只是JavaScript,还包括HTML和各种Task框架都支持的非常好,包括CoffeeScript、Dart、Jad、LESS、Grunt等等。

WebStrom是第一个真正意义上的前端IDE。

2012的时候,公司需要做自己产品的前端IDE,之前做过Eclipse版本的,最大的缺点是:

  • Eclipse插件开发难度较大,成本高。
  • 做成插件以后,因为功能复杂,体积很大,拖累了Eclipse的启动速度,用起来卡卡的。
  • Eclipse版本的不兼容升级,导致为了适应新版Eclipse,不得不调整代码,测试测试,费时费力。
  • 无法做到页面的可视化开发(所见即所得)。到目前为止,市面上尝试在Eclipse上做所见即所得web开发的插件没有特别成功的。费时费力,工作量不是一般的大(因为要模拟浏览器的渲染方式,工作量可想而知)。

2012底我用了一个神奇的项目,叫做node-webkit,花了一个月时间demo了Eclipse版的核心功能,整个2013以此为基础,重构,又添加了其他功能,其中最重要的有两个:

  • JavaScript代码提示。是到了CodeMirror、acorn、ternjs。
  • 页面可视化编辑。因为node-webkit本身就是浏览器,所以实现所见即所得就容易得多。

不过node-webkit最大的问题是不够稳定,要命的是,同一个版本,在windows上是好的,在mac可能就有问题,这个主要和node-webkit的需要修改node和chromium的源代码的原理有关,所以难以保证不出问题。

2014Github发布了Atom,其中底层的Atom Shell(现在更名为Electron)使用了另外一种不修改node和chromium源代码的方式实现了node-webkit的功能,所以更加稳定。但是Atom刚发布的时候试了试,性能太差,所以放弃了,现在不知道怎么样了。

2015m$发布了VSCode,基于Electron,利用了微软在IDE方面的多nian经验,一出世就表现惊人,如果使用VSCode开发TypeScript简直爽得不要不要的(犹如开发Java一样流程),开发JavaScript同样一流,我再也不怀念WebStrom了。下面简单说两个扩展VSCode的高级话题:

  • 代码提示。如果你编写了自己的JavaScript库,可以通过编写库的TypeScript的definition文件的方式,被VSCode识别,并提供提示。
  • 代码调试。如果是页面的JavaScript调试,那么可以使用浏览器自带的调试工具;如果是node程序,VSCode本身就提供了对于node程序的调试功能;如果使用其他JavaScript运行环境,那么需要编写自己的调试器,这个也不难,官方有例子。

总结一下

如果你不差钱(或者不在乎Lisense),那么选择WebStrom肯定没错,需要注意的是社区版的Idea是没有开放JavaScript插件的,所以社区版肯定不适合做JavaScript开发。如果需要对IDE做高度定制化的,建议选择Atom或者VSCode,他们是通过Json或者JavaScript完成扩展,所以容易很多,因为我对VSCode了解的更多一些,所以倾向于它,并且相信微软在IDE方面不是吃白饭的。

SublimeText

比较遗憾的是我没有SublimeText的使用经验,所以上面没有关于它的说明。道听途说,它的使用体验和插件体系都是很棒的。严格来讲SublimeText是可以长期免费试用,但不是免费软件。