最近没事,想换VSCode写代码了,调教两天之后,用的颇为顺手。然后,要过圣诞了,竟然还有一个小彩蛋,挺有趣的。看到VSC做的越来越好了,有些小感慨。我很喜欢ST,用的也挺多。所以简单聊下和两个编辑器的认识。

大概是在2012年左右接触ST的。以前在学校里面,学的是C++和Java,两个语言都有自己成熟的IDE。那时候也没有什么要求和想法,能提示代码函数以及运行就很好用了。后来苦于编辑器的臃肿,以及Vim编辑器的折腾,当发现ST这款神器时,如沐春风,兴奋的不得了。

ST当时让自己感觉很舒服的地方是,开箱即用,不需要像Vim还得装一些插件;以及,漂亮的主题,可以自己切换;还有代码小地图,一览无余。能让我像个小白一样噼里啪啦的写代码,所以立马就喜欢上了,后来也安利给其他的同学用。这是认识的开始,那时候还是ST 2。尽管用起来很舒服,但是,时间久了就发现他的不完美。首先,他的配置是JSON文件的。也就是需要用户手动去编辑这个文件修改配置,这就有点Geek了。例如,切换一个主题还得知道主题的完整名字,然后,编辑这个JSON。当时也是苦于这点,还写过一些脚本自动切换主题,比较喜欢折腾这些乱七八糟的。

也许是看到编辑器跟开发者关系紧密,大有作为。之后,不断的有新的编辑器涌现。尝试的第二个编辑器是Atom。Atom是Github基于他自己的跨桌面应用框架Electron写的。Eletron说白了就是一个浏览器壳,然后,开发者可以像写Web应用一样,来写桌面应用。后来的编辑器大都是基于此做跨平台的。还得再提一下ST的厉害了,ST不是基于此开发的,没记错应该是C++开发的,然后使用Python作为插件语言。所以,ST天生就比这些用起来丝滑。Atom,个人觉得,是参考ST来开发的。ST有的,他也都有。例如,小地图,Goto-Anything,插件机制,主题换肤等。所以当我用到Atom时,并没有太大的兴奋。甚至在编辑方面还不如ST,基于的底层框架不一样,所以Atom不适合超大文件编辑,并且体验上不如ST丝滑。他做的一些亮点是,简化了配置。也可能是因为基于Electron开发,所以对前端开发相当友好,调试等非常方便。以至于后来Facebook推React时,还基于此做了一个ReactNative的IDE。这个时候,编辑器市场上应该是ST和Atom占据主流了。

直到后来,微软也想插足编辑器领域了。微软的VS号称宇宙最强IDE,开发体验相当好。他做了这么多年IDE,还是积累了一些经验的。所以推出了VSC,的确有不俗的表现。VSC也是基于Electron开发的。我当时对VSC并没有什么特别的感觉。试用之后,觉得不过是另一个Atom而已。他独创的是左边的ActivityBar。分别是,文件,调试,Git。VSC的思路非常清晰,他要做好的是,代码编辑&代码管理。他是站在巨人的肩膀上前行的。操作上,跟Atom一样的简单。性能上,比Atom强一些,但是不如ST。我当时放弃VSC是因为,他不支持多个文件夹的代码编辑。现在看来,他称为workspace。当时ST支持,Atom也支持,独独他不支持。专门去他的Github下看了,果然万人血书,求支持。然后VSC团队的开发者还辩解了一番,称,不理解这个多文件夹是什么概念,有人就甩ST给他们看。总之,VSC最后终于接受了这个提案。其实现在的实现版本来看,做的并不如ST好,反正我是不怎么用他的这个功能,还不如多开个窗口。但是好歹是做了。

从这里也可以看出,VSC团队的开放态度。也可以感受到不同的团队做的产品,未来的发展趋势。他的代码放在Github上,随时倾听开发者的意见;ST有自己的论坛反馈问题,但是,有多少人会专门跑过去留言,和开发者沟通呢?当时自己觉得ST的主题切换不舒服的时候,去论坛看了眼,感受不太活跃,也就放弃了。

现在是2018年末。之前看过一个开发者统计,VS Code似乎成为最受欢迎的编辑器了。这是可以看到的结果。微软IDE方面有足够的经验,又足够的开放,吸取开发者的意见。不难看到这样的结局。

但是,我依然认为,ST是最厉害的。因为他开创的编辑器功能和革新,成为了后来的编辑器的标准。一个产品,如果其中的设计能够成为同类产品的标准,这本身就是一件很伟大的事情吧。