开发人员是一群挑剔的人。就像一只狗拒绝在潮湿的草地上行走一样,似乎总是有一些阻力要改变常规。无论是《星际迷航》中的笑话、Vim还是Emacs,我们都喜欢和我们一起长大的东西。
这场战争的起源可以追溯到20世纪80年代的Usenet组织,当时Vim和Emacs是主要的编码工具。众所周知,Emacs是一个“曲折的小段落迷宫,全然不同”(这是一个老程序员的笑话,出自游戏“巨型洞穴历险记”),而Vim则提供了一个由箭头控制的键盘快捷键。两者都用于编码、编辑和管理系统。而且,尽管我们都不想这么说,但双方似乎都不想在夕阳中消退。
多年来,Vim和Emacs用户之间无休止的战争一直令人作呕。在这一点上,与其说这是一场战争,不如说是对根深蒂固的习惯和对变革的顽固抵制的牢骚满腹的洗牌。VIM和Emacs的用户在互相攻击之后,似乎已经实现了彼此的键绑定(这是他们实际做的事情),以对抗一个共同的敌人--任何现代的IDE。
许多Vim/Emacs用户的共识创造了一幅特定时代的许多科技用户都会熟悉的图景。正如我父亲所证明的那样,在微软Zune的支持耗尽很久之后,如果它没有破坏…,我仍然在使用它。虽然市场上有很多IDE,但如果你不一定要使用一个,那就没有理由使用一个。这也是我仍在使用记事本写作的原因,而不是什么花哨的文本编辑器或CMS工具。只是起作用了。
Vim用户约翰·卡特(不是来自火星的)说:“我避免使用IDE的原因是,大约十年前,当我刚进入Vim的时候,它是一个额外的许可证。”“从那时起,这就成了一个‘代码速度’的问题。”如果我从一个新的IDE开始,或者甚至切换到像Emacs这样的东西,我就会慢下来。在情感和职业层面上,我真的负担不起。转向一位新编辑是需要精力的。我没有那样的精力。我得到了工作、家庭和副业。这看起来很愚蠢,但这种转向需要精力。
Vim始终可用。任何Linux机器都有它。Vim占用空间小,延迟低,启动速度快,允许更大的屏幕空间,可定制,最重要的是,一旦肌肉记忆根深蒂固,几乎不可能切换到其他东西。
卡特接着说:“我们的手指往往是构思代码和把代码放入应用程序之间的瓶颈,所以人们希望优化快捷方式。”
以Atom为例,它是比较流行的IDE/编辑器之一。Atom是一个免费、开源的文本编辑器,它标榜自己是“可侵入核心的”,允许多种定制。它具有跨平台编辑、4个用户界面、8个语法主题,并集成了HTML、Javascript、CSS和Node.js。对于过去五年没有开始编程的用户来说,最重要的是有Vim模式包。这导致用户将Atom变成Vim,无法放下过去,不愿完全拥抱代码编辑的未来。
大多数IDE创建开发人员可以创建的整个世界,但创建需要配置。要调整这个世界,扮演上帝,创建快捷键和快捷键,适应不同的命令结构和用户界面,都需要时间。虽然程序员可以坐在任何终端上开始在Vim中工作,但这并不适用于任何IDE。此外,IDE对于这项工作来说往往是太多的工具。与庞大的编程巨人相比,简单的文本编辑器更能为初学者提供更好的服务。
由于程序员的职业生涯与其说是通过他们的专业知识发展起来的,不如说是由谁在签署他们的薪水支票,所以无论公司喜欢哪种IDE,总有一个恒定的代码编辑器可供他们使用。这可能被视为一种故意挑衅的行为,或者只是个人偏好,但文本编辑总是在那里。
BSD跑步者蒂姆·蔡斯(Tim Chase)说:“首先,这是关于无处不在的。”“我可以坐在任何类似Unix的终端上(Linux、BSD、Solaris等等),输入‘vi’(或‘ed’),拥有一个强大的编辑器,即使我的终端配置不是很正确(例如,发送某些键或组合键),也不需要安装任何东西。”
正是这种舒适性使得那些仍在使用Vim或Emacs的用户和使用IDE的人之间的战争一直持续到现在。这是精神妈妈做的意大利面(或者在这里插入你的安慰食物)。VIM和Emacs总是在那里等着你,舒适、平静和乐于接受。而IDE是一种怪异的新食物,含有各种异国情调的食材,需要坚韧而非理性的叉子来挑选,才能得到你想要的东西。这种脱节是显而易见的,在这一点上也是可以理解的。
不过,开发人员也意识到,也许切换到完整的IDE并不像听起来那么难以忍受。当你最终意识到为了完成工作,你需要使用可用的工具来完成工作,而不管这些工具是什么,这是一种无可奈何的感觉。
汤姆·汉克斯并不是这么说的,他说:“我说,只要能帮你完成工作,就用它。”“有时现代的IDE越多,就越有可能成为障碍,而有些时候,它们则是不可或缺的。”例如,当一个项目文件关联的文件太多时,Visual Studio就会出现严重的性能问题。整个应用程序变得非常缓慢。几年前,当我使用PyCharm进行Python开发时,它有时会变得“混乱”,并在语法分析方面给出不好的反馈。从根本上说,这让你觉得自己犯了一个错误,而实际上一切都很‘好’。“。
也就是说,如果您是编程新手,现代的IDE可能会有所帮助。凭借代码完成、Git控制甚至自动部署系统,现代IDE是一把瑞士军刀。而且,就像大多数瑞士军刀一样,你不必使用所有的功能才能发现它们是有用的,特别是如果你刚刚开始使用的话。比方说,我们很多人都不会使用打孔机或牙签,但知道它就在那里是件好事。
无论Vim、Emacs和IDES之间在编码者的屏幕后面可能会爆发什么战争,这都无关紧要。VIM和Emacs在短期内不会有任何进展,无论它们在现代开发环境中的过时地位如何。IDE将不断改进,不断推出,并服务于越来越多的年轻开发人员,他们从未被迫在Vim或Emacs环境中茁壮成长。对于那些正在为选择首选程序而苦苦挣扎的人来说,最好的建议是只使用可用的工具来完成工作。或者,就像20世纪流行诗人TLC巧妙地宣称的那样,“不要去追逐瀑布,请坚持你习惯的VIMS和Emacs。”
标签:Emacs、ide、vim