作者
ROBENKLEENE
译者
孙溥茜,责编
郑丽媛
头图
CSDN下载自视觉中国
我挑选工具时,最看重的一点是工具的年龄。学习软件是一种投资,除非迫不得已,我不要会换工具,因为这会让我损失一部分在学习上的投资。
在众多软件类别中,通过软件年龄选择要学习的软件是比较靠谱的方法,最流行的工具通常也是一个被使用时间最久的工具。微软的Excel和AdobeIllustrator两款软件都是在创建的,而直到今天它们还是同类软件中最受欢迎的软件。
但这也不能一概而论。文本编辑器作为一种软件类别,却不能根据软件年龄来挑选最靠谱的那一款。根据StackOverflow开发者年度大调查显示,-之间Mac上最流行的编辑器是Sublime。Sublime是年被创建的,比起Excel和Adobe非常年轻。相较而言,文本编辑器一直是一种更新迭代速度很快的软件类别:在过去二十年,TextMate、SublimeText和Atom是发展势头较猛的文本编辑软件。对于大型的复杂的桌面软件来说,还有其他类别的软件有过这么大的变化吗?
我相信,随着VisualStudioCode的出现,新的文本编辑器迅速崛起的时代已经结束。VScode的流行度与完善都到达了一个前所未有的高度,未来十年可能都将占据着文本编辑器市场的统治地位。如果你也像我一样,将软件的年龄作为你选择工具的优先考虑选项,那么学习VScode会是一个不错的投资。
我们将在这篇文章中围绕以下几个点讨论VSCode长寿的原因:
流行度:VScode跨过了近年来其他文本编辑器没有迈过的门槛。平台型文本编辑器:VSCode结束了文本编辑器不断围绕扩展应用更新的时代。范式优越:VSCode从桌面App转向web应用实现了范式优化,甚至为了今后文本编辑器的样本标杆。公司管理:VSCode被一个强有力的科技公司进行组织与管理。
流行度
VSCode是当下最流行的文本编辑软件,它非常流行,以至于它可能是最流行的GUI编程工具。从年起,StackOverflow在他们的调查中加入了有关文本编辑软件的问题。那时Notepad++是最流行的文本编辑器,有34.7%的受访者说他们非常喜欢Notepad++,在接下来的一年里,不同的文本编辑器的流行程度都有一些变化,但是没有一个得到超过40%的支持率。直到年的开发者大调查,VSCode的支持率达到了50.7%,这是第二次VSCode持续增长率超过45%,年VSCode的支持率是34.9%,VSCode在年时便已经很流行了。
-年流行的文本编辑器
(注意,Stackoverflow在年到年之间开始允许提供多个答案,所以我对这两年之间的变化持保留态度。)
平台型文本编辑器
在过去的几十年间,文本编辑器的发展已经逐渐完善,VSCode是最终集大成最具代表性的文本编辑器。文本编辑器的发展历程是一个通过扩展能力的提升而发展成平台的过程。以下是文本编辑器的发展历史。
之前:BBedit、Emacs、Vim
BBedit、Emacs和Vim都是优秀的文本编辑软件,但是他们都有一些不能成为最受欢迎的文本编辑器的特点。Emacs和Vim的前身Vi,都是在年第一次发布,那时许多用户界面都还没有定型,还没有Ctrl+Z/X/C/V进行撤销、剪切、复制和粘贴等快捷键。键盘快捷键是是通过Macintosh和Windows1.0流行起来的,这两项分别发布在年和年。Emacs和Vim都不使用这些键,而是使用他们自己的术语。他们都使用”yank”(yank在Vim中是复制,在Emacs里是黏贴)。BBEdit发布于年,在这个时期,第一个图形交互界面工具出现,之后成为了一个新的时代。同期还有Excel(),AdobeIllustrator()和Photoshop()。和这些应用程序一样,BBEdit今天仍然适用。但是和他们又有一些不同,BBEdit没有在同类软件中流行开来。其中一部分原因是它一直没有适应强调包驱动的文本编辑器生态系统。
:TextMate
TextMate发布于年,它是有史以来最有影响力的一个文本编辑器。在众多特征中,它最流行的特点是缩写代码段,自动配对字符和通过文件名模糊查找。所有这些特征成为了之后流行的编辑器必备的特性。TextMate率先应用的范围选择器功能和主题功能也为之后流行的文本编辑器的主题与语法高亮特性打下了基础。对于一个初创的应用程序来说,这些功能已经很多了,但还不是TextMate所有的创新。TextMate仍在重塑文本编辑器,完善之前编辑器的功能,并为十几年之后VSCode的普及铺垫基础。TextMate的重要创新是:它是第一款基于拓展构建的文本编辑器。虽然TextMate以拓展构建的概念流行起来,但是从之后看,这些不够,TextMate的扩展功能还存在局限,而后来的文本编辑器由于增加了移除拓展的功能流行度更高。
:SublimeText
SublimeText发布于年,它使迷你地图和多光标功能普及开来。不像TextMate和BBEdit,它是一个跨平台,可运行在Linux、MacOS和Windows系统的软件,比起其他编辑器,它可以覆盖更多用户。但是SublimeText最大的影响还是它在编辑器拓展应用上做的优化。SublimeText的拓展程序通过拓展API运行在一个内嵌的Pythonruntime中。不是像TextMate那样使用MacOS内置的脚本语言,而且没有一个合适的拓展API,主要集中在处理标准输出上。Sublime Text极大地丰富了拓展可以做的事情,允许更多的复杂的集成例如包含GUI组件的Inters。但这一点还不够,SublimeText的包管器——PackageControl不是内置的,虽然SublimeText有API,但是它使用Python定制调用GUI组件,所以这一点为之后的文本编辑器的进步空间。
:Atom
Atom是Github在年发布的,它将拓展功能做到了最优。Atom的包管器是内置的,可显示带有带有内嵌图像的拓展自述文件(并且GitHub本身进行的早期扩展也普及了使用动画GIF来说明功能的惯例),从而产生了类似于应用商店的扩展体验。这里HTML和CSS也很重要。Atom用Electron构建,编辑器使用JavaScript编写且运行在Node上,比起SublimeText的PythonAPI、HTML、CSS和JavaScript是更广为人知的语言,这一点降低了创造这个拓展应用的门槛。
Atom基本上是一个基于拓展的完美的编辑器,这里只有一个问题:速度太慢了,从它发布起,对他表现的抱怨就没有停止过,在这种明显的比较下,市场最终选择了SublimeText。
:VisualStudioCode
VSCode发布于年,VSCode是基于微软在年发布的可以嵌入到网站上的Monaco编辑器。当GitHub随Atom一起发布Electron之后,Microsoft使用它创办了桌面版面本的Monaco,叫做VisualStudioCode。
VSCode采取了和Atom一样的标准,VSCode通过将拓展加入工具条,使得拓展成为和文件浏览,搜索,源码控制,调试相同的级别。VSCode拓展可以丰富用户界面,可以用HTML、CSS和JavaScript编写,并且可以完全访问node,本质上他们可以做任何其他应用可以做的事情。当然了,这些拓展程序本身看起来已经像一个应用程序。
基于拓展应用的文字编辑器看样子已经到达它最后的形式了,从TextMate以来,拓展应用的知名度和能力不断增强,到VSCode时期,这种进步看起来到达了顶峰,它已经没有其他可以发展的空间了,相比之下,这里没有一个新的路径给文本编辑器,让他们像曾经的文本编辑器那样,通过提高扩展功能来去超越其他编辑器一样地去超越VSCode了。
范式优越
截至目前,我们已经将VSCode的流行性和拓展应用情况视为它寿命的指标,这里还有第三个指标即我们会看VSCode如何超越桌面应用的局限性。Code-Server项目运行VSCode时候视他为一个常规的Web应用程序,即托管在服务器,但是通过浏览器来浏览,GitHub的Codespaces同样也将VSCode视为一个Web应用程序,这是通过快速设置一个临时的开发环境。
优化范式,就如同将一个桌面App转化为一个Web应用程序,这是一个增长使用寿命的另一个重要指标。从一方面来说,这会让其今后更容易被使用到其他范式中,移植到新的范式中会花费很大精力,付出这种努力也是一个伟大的价值指标。Emacs和Vim都被从终端迁移到GUI应用程序中。他们的价值太高了所以不能没有一个GUI版本。Photoshop和Excel两个都是运行在移动端,随后Adobe出现了,Excel同样也有Web版本的,还有一个Photoshop的流式版本(尽管它已经在封闭测试版中运行了6年)。
VSCode不仅超过了最初设置的参数,即成为了一个Web应用程序,某种程度它也成为了一种标准。由Eclipse基金会维护的TheiaIDE1.0版本是VSCode的翻版,VSCode现在不只是文本编辑器,还是一个文本编辑器的标准模板。
公司管理
TextMate大部分工作是由一个开发者实现的,AllanOdgaard,和SublimeText一样,两个应用最终都陷入了用户对新版本发布缓慢而泄气的困境。
以下是这两个应用主要版本发布的时间线
:TextMate1:SublimeText:SublimeText2Alpha:TextMate2Alpha:SublimeText3Beta:SublimeText3:TextMate2
这里有一个稳定的主要版本发布时间的图表(对比BBEdit10-13的发布日期):
通过这个时间线可以反映出两个问题:1.TextMate2发布与TextMate1发布的间隔时间太久了。2.SublimeText一直在坚持发布新产品。
SublimeText的投诉问题集中在年Beta版发布和Sublime3正式版发布之间,在这个期间投诉都是关于Sublime缺少足够的改进。和BBEdit发布的主要版本相比起来(BBEdit发布了3个主要版本11,12和13),Sublime还在beta版本徘徊。尽管Coda2发布在年,但是它从来都没有更新过,所以也不确定Sublime是否和Coda一样,不是发布的商业用途。
VSCode目前的版本是1.49,但是VSCode是开源的,所以它和商业版本的规则有一些不同,主要版本的存在至少是公司进行一部分升级收费的机会。
由于VSCode是开源的,我们可以直接通过其提交历史来评估其开发速度。VSCode在GitHub上的提交情况表明:这是一段积极的开发历史,它的提交速度超过了Atom,甚至比一些大型Facebook项目React还要活跃(请注意,这些图在Y轴上的比例不同)。
VisualStudio代码提交图
原子提交图
提交反应图
积极的开发会把平台从主流中拉出来,因为前进的势头和第三方在平台上构建的组合很难与之竞争。这种结合使得新进入者很难与流行的浏览器或操作系统竞争。
结论
这篇文章的目的是用来确定:如果你重视软件的成熟度,那么VSCode是否是一个合适的用来投资学习的工具。作为一个类似平台的文本编辑器,自TextMate从年被发布,每隔几年就有势头强劲的新版文本编辑器发布,从任何标准来看编辑器的流行都是小规模并短暂的,但是比起Excel、Photoshop他们又绝对不可小觑。如果你追求软件的快速变化,那么学习VSCode文本编辑器是否有价值是一个值得讨论的问题。
VSCode的出现终结了编辑器只在短时期占领一席之地的局面。如果我们用其他领域流行软件的尺度去衡量VSCode,那么它有能力去保持它的流行地位在接下来的很长一段时间中,这个时间有可能是十几年。
再来让我们总结一下:
有超过50%的开发者使用VSCode,这是其他文本编辑器无法企及的门槛。VSCode以及将拓展功能的可视化和能力做到了最大化,这让其他新文本编辑器没有更多发挥空间从而无法被超越。VSCode已经超越了桌面软件的界限,它也是一个Web应用,甚至已经成为了一个文本编辑器的标本,它代表了文本编辑器应有的样子。VSCode被公司管理,因此它不会像其他文本编辑器一样陷入经营不景气的困境。原文: