关注了就能看到更多这么棒的文章哦~
Making Emacs popular again
By Jake Edge
May 6, 2020
原文来自:https://lwn.net/Articles/819452/
主译:DeepL
译者注:建议看原文,这是最近少见的有大量comments的文章。果然每次跟Emacs有关的争论都会拉仇恨,不过这次是VS Code了。Vim在哪里~
Emacs编辑器出现得比Linux还要早,并且曾经远比Linux更流行。但这些年来,Emacs编辑器已经相对变得没有Linux那么流行了。在emacs-devel邮件列表上的一个超大规模讨论中,参与者们讨论了各种让Emacs更 "attractive"的主意,既包括让它更加美观,也包括让它能吸引到更多用户。然而,Emacs在这方面的任何改进都会面临许多障碍。这其中有技术问题,自然也有license问题。但还有一个哲学问题,那就是到底是什么东西阻止了这个古老的文本编辑器的继续流行。
So square
讨论开始时,"ndame"发帖询问,Emacs为什么 "so square(如此方正)"。按钮之类的外观可以用圆角来改善。Emacs 的原作者之一 Richard Stallman 在回答中似乎有些不屑一顾。"也许我们应该实现一种模式,在其中给Emacs进行各种装扮,这样它就能吸引那些以事物外表来做决策的人。" 但是,Stefan Kangas认为这个问题不是这么简单:
我认为,如果我们都把这些当做是锦上添花的装饰品,那不是个正确判断。图形设计元素也可以提高可用性。
我也不认为我们可以要求世界上的其他人都能做出正确的判断。例如,我一直认为,很多人使用Sublime Text并不是因为它比Emacs有什么重要的功能方面的优势,而是因为喜欢它的 "圆润的外观"。
那么,我们"有什么具体理由不改进默认外观"。Stallman说,很难找到对这个工作既有兴趣又有能力的开发者,并且,在做这个工作之前还需要先解决一个过度设计的问题:
Emacs与GUI(基于X windows系统)的接口代码需要由专家来重写,等了超过十年了还没有等到。在重写之前如果对这部分进行改动的话会很容易导致系统问题。
Stallman确实赞同图形化设计(graphical design)可以提高易用性,"但我感觉,真正有用的界面改变并不仅是边角形状而已,而是一些更深层次的问题。"。Eli Zaretskii说,只有在Emacs用户启用了这些功能(如菜单栏和工具栏)的情况下,GUI界面才会很重要,但很多关于配置Emacs的建议里面都建议了要禁用这些。
当社区对这些功能是否应该存在还存在分歧的时候,我们很难有动力把这些功能改得更加现代化。我认为,我们应该首先行动起来,决定一下这些功能是否重要,然后当我们看到有些建议违背了这个决定的时候,就要明确说出来。
不过,除此之外,Emacs整体还有更大的问题要处理,这是Joseph Garvin的意见。Emacs的用户界面 "看起来和其他应用程序不一样",键盘快捷键与其他程序不同,Emacs世界中使用的术语与用户熟悉的用语也不一致。
【……】没有一个微软的word用户认为自己打开过 "缓冲区(buffer)"。他们打开的是 "文件"。他们移动的是 "窗口",而不是 "框架(frame)"。他们用cut和paste,而不是kill和yank,还有许多这样的例子。
你得深入学习和联系才能成为一个合格的用户。如果不是觉得这些学习可以为我这个软件开发者节省大量的时间(确实可以!),我才不会吃这个苦头。我怀疑现在没有人会投入精力去学习emacs,除非学习Emacs就是他们的目标本身。如果你只是想做 "casual(平常地) "的文本编辑,那么在2020年还选择Emacs,就是一个非常奇怪的选择。
但是,Ahmed Khanzada说,"modernizing "Emacs(无论具体定义是什么)很可能是在浪费项目的时间,因为它的外观并没有拖它的后腿。举例来说。"terminal based Vim长得也并不像是一个moderm application,却比Emacs更受欢迎。" 他说:"一个可以使用Lisp语言进行扩展的编辑器的吸引力很有限。花费一堆时间和精力给它一个现代的外观并不会改变这一点,而且,当工作完成后,"modern"这个词的含义又会发生变化。
Popularity
Kangas对Vim受欢迎的这个说法表示怀疑。Khanzada则指出,2019年的一项调查显示,Vim比Emacs有相当大的领先优势(他之前提到的是20%到3%,但截至本文撰写时看到的数值是25%到4%)。不过,该调查显示,Visual Studio Code (VSC)是明显的赢家,50%以上的受访者使用该工具。也许你可以对调查的方法提出质疑,但总的来说这些数字似乎并没有脱离实际情况。
这引发了一些关于用户为什么喜欢VSC的体验的讨论。"我们需要弄清楚为什么VSC如此受欢迎,然后填补Emacs所缺失的地方。"Po Lu说。Bob Newell认为,"让Emacs更容易使用、更有吸引力,这个目标很值得称赞,也是一个雄心勃勃的目标";他说,这是在这个项目中应该可以做好的事情。但他担心的是,现代软件通常的目标是 "即时满足(instant gratification)",而不是长期可用性和强大的功能。
是的,应该让Emacs更有吸引力,也对用户更友好。但别忘了,一个强大的工具总是需要花费精力来学习掌握的,这不可能是没有代价的。我当然不会说Emacs适合所有人。我并不认为它只适合于某些势利眼的 "精英人群(elite)",但我认为它适合的是那些愿意学习的人,把这些额外的学习行为看成是个长期投资,并且有耐心在稍晚一点的时候达到一个物有所值的目标,而不是在这一刻就能获得的即时满足。
Stallman同意这个观点。但他也希望看到Emacs也能在文本编辑出版的领域也重新流行起来。有几个人指出,Org mode已经成功地用于文本出版场景了。Stallman并不熟悉Org mode,他无法通过简单阅读文档来了解如何使用Org mode来进行文字处理。Zaretskii指出,想从看文档来学习Org mode是很有难度的,至少对于文字处理这种使用场景来说是如此。
不过,这再一次说明,一些人们认为很适合文字处理的Emacs模式,虽然有完善文档,其实也没能让用户趋之若鹜。但Stallman说,30年前,Emacs的用户在各个领域里面都有,非常希望看到Emacs现在的用户也能像当初这样。他个人不认为圆角是一个重要问题,尽管他并不反对朝这个方向努力;"[……]如果你想吸引更多的用户使用Emacs,我认为还有更重要的地方需要改进。" Lu在这方面有一些想法,例如,使用starter kits(or packs)来帮助Emacs变得 "对新手更友好"。
不过,为了帮助新人而修改默认配置,大家还是有不同的意见。ndame表示,如果需要为了新人而做这些改动,那么应该允许老用户直接关闭这些改动。Cua模式就是一个例子,它在Emacs中增加了一些 "事实标准 "的按键绑定,如剪切和粘贴(即ctrl-c、ctrl-x、ctrl-v),默认情况下应该是开启的:“这样新手就不需要特地打开这个功能,对新手来说更加方便易用,他们能直接使用他们在其他工具中已经熟悉的copy/paste按键。”
但是Lu的建议是增加一个按钮,让新用户可以从splash screen中打开这些功能。ndame认为更好的办法可能是让Emacs识别出当前用户是否可能是位新人:
用一个按钮也是可以的。或者,如果Emacs启动时没有配置文件,那么它可以问 "你是第一次使用Emacs吗?" 用户说 "是",那么它就可以提供一些方便的功能设置,比如CUA模式。
如果用户说 "不是",那么一切都和以前一样。
在这类改变默认设置的决定之前,大家讨论了一些关于反馈收集的问题,但Dmitry Gutov想知道现有的用户是否还重要。如果目标是扩大Emacs的覆盖面,那么换个角度看问题可能更有价值:
所以,对于所有关于改变默认设置的问题,我们应该问自己,是优先考虑现有的5%(或者像SO调查所说的3%)用户群,这些用户群自然会在未来几年内继续萎缩,还是说我们更愿意让后来的用户生活得更轻松、更有成就感,这才是我们应该考虑的。
而现有的、长期使用的用户也不是不能慢慢喜欢上新的默认配置的(即使可能确实有不少抱怨)。
Lu不同意:"我们应该优先考虑现有用户,而不是还不存在的用户。" 但Gutov说,这个看法有点短视:"我不希望Emacs消亡,如果我们不做吸引新用户的工作,它就会消亡。" 没有真正达成一致。每个人都希望看到Emacs用户(开发人员、测试人员、文档编写人员……)的数量增长,但如何做到这一点,还不是十分清晰。
Licensing
回到圆角问题,Zaretskii说,唯一缺少的就是代码实现了:"[……]在Emacs中添加这种功能的patch是最受欢迎的。”但Emacs是多平台的,Gutov说,这意味着每个平台上的按钮看起来都不一样。即使是在同一个平台上,不同的graphic toolkit也会有不同的外观,而且在同一个tookit的不同版本之间,外观也会发生变化。
Alex Bennée建议,"找一个跨平台toolkit来统一开发,例如GTK+",就可以避免部分问题。但他也指出,GTK+中的一个长期存在的BUG导致他用的是基于Lucid toolkit的Emacs。他还担心下一代新生人类:"我一直在考虑给我的孩子们挑一个文本编辑器,因为他们从积木式编程会过渡到使用文本编程,我自己甚至都不确定是不是应该让他们一上来就用Emacs。"
Zaretskii指出,GTK+并不是真正的跨平台。此外,GNOME开发者也不认为这个上面说到的bug是GNOME开发者的问题。所以Ulrich Mueller开始酝酿转而使用Qt。但Stallman很快就把这一想法抛之脑后:Qt只适用于GPL 2和GPL 3,使用Qt就意味着如果哪天有GPL 4,Emacs就无法切换到GPL 4了,"所以我们必须避免使用Qt。"
Electron也被提出来,作为一种备选方案,但Lu说,有人指出它有 "freedom issue"。目前还不清楚这里的问题具体有多严重。切换graphics toolkit注定是一项艰苦工作。这似乎也确实证明,Emacs开发社区中也有一些人对编辑器的GUI版本感到不满意。除此之外,许多Emacs开发者甚至因为这个bug而不使用GTK+版本,进而导致他们对改进GTK+版本的Emacs缺乏兴趣。这一切似乎都是一团糟。
Emacs使用的图标也在这个讨论中受到了质疑,这里同样有license问题。Emacs 在reddit上的讨论区显然是有许多相关的想法和建议,因为它在这个讨论邮件中出现过好几次。例如,ndame报告说,"有一个用户发布了一张Emacs工具栏的截图,最后的图标看起来很难看"。(好心的译者把图也贴过来了,哈哈)
人们说,有不少GPL图标集,可以用来代替。但Zaretskii提醒说,事情可能没有那么简单:
欢迎给我们指出可以集成入Emacs中的GPL图标。以前,情况并不像你所说的那样简单,但也许这么多时间过去了,情况已经发生了变化。
人们推荐了几个图标集,包括 GNOME 图标,一些来自 Wikimedia 的图标,还有 KDE 的图标,所有这些图标都有不同的free license(GPL、Creative Commons、LGPL)。但Zaretskii说,不仅仅是确定备选项而已,还有许多工作要做:
需要有人投入时间和精力去弄清楚法律问题,从那些合法的图标中找到我们想要的图标,并将结果发布出来。我们当时就做了一遍(我记得,我们的很多图标都是来自Gnome/GTK),这并不是件容易的事情。
或者,有人可以创建我们自己的图标,甚至可能比这里列出的图标更漂亮。
不管怎么说,这不是一项容易的工作,非常欢迎志愿者来做。我想没有人对Message mode下工具栏上显示的图标感到满意,我们使用这些图标的唯一原因是我们找不到更好的图标,这些图标是免费的,而且适合集成入Emacs。
但是,ndame问道,来自GNOME(这是一个存在了很长时间的免费软件项目)的图标不应该完全可以用在Emacs中吗?Zaretskii说,可惜,事情没有那么简单。"我不是个律师,但我认为至少必须是GPL v2+。而且也许我们还需要能把copyright授予FSF。" Stallman做了一些解释,比如说,Wikimedia图标在LGPLv3和Creative Commons Attribution-ShareAlike (CC BY-SA) 3.0许可证下可以使用,但这两个许可证都不能用于Emacs程序。如果LGPL授权时没有提到“or later”,就会有类似Qt这样的问题。CC BY-SA 3.0则 "与GPL的每个版本都不兼容"。但最终,这可能并不是一件重要的事情:
如果图标不属于Emacs程序的一部分,那么就不存在license冲突。
Emacs发行版包含了许多作品,包括文字、艺术和小程序,这些都是并不是Emacs这个程序本身。
Zaretskii和Stallman能够确定Emacs的图标属于这一类,所以它们只需要属于任何free license,这样事情就会大大简化——只要有人投入时间和精力去解决这个问题就行。就像大多数项目一样,Emacs也缺少人力。一个改进GUI的任务,对这些开发者本身没有多大好处,那么就很难吸引到开发者投入进来。而这个小小的结论基本上可以概括了所有这些Emacs讨论。
Moving forward
对于它的信徒来说,Emacs是非常有用的。他们中的许多人认为Emacs是他们计算机的主要界面。其他人也经常使用Emacs,但并没有做什么事情都用Emacs。甚至有一些长期使用Vim的用户(实际上他们可能最开始用的还是vi)也需要Emacs来完成某些任务,比如说我自己就是一个例子。它非常完美地服务了所有这些用户,但十年、二十年或四十年过去了,它真的还有价值吗?当然,这不是一个容易回答的问题,当然,十年和二十年过去了,Emacs仍然和我们在一起。但四十年后,它还有多少用户?
有一部分原因,是Emacs的忠实用户在很大程度上也很抗拒改变。这并不是一个确定结论,只是一种观察后得到的印象。在那个庞大的邮件讨论中,有很多例子,都是一些主意被拒绝了,因为它们代表了可能会让现有用户不高兴的一些改变。但是,看起来要想引入新的血液,似乎需要做一些改变。如果很少或干脆没有新的用户进来,却仍然不做任何事情来吸引更多用户,那只能导致最终的消亡。
希望Emacs不会真是这种场景,或者它能尽快改变方向。Emacs是最早的自由软件程序之一;事实上,它比 "自由软件 free software "这个词还早了近十年。当然,代码本身不会完全消失,但我们非常希望能看到一个充满活力、不断发展的Emacs社区。
事实上,我们对这个巨大的讨论邮件的介绍只是一些表面信息。其中还有很多分支讨论,在这里完全没有提到。所有对Emacs开发感兴趣的人,无论是否是死忠粉,都可以在这里找到很多值得阅读和消化的内容。无论Emacs最终是否会出现圆角,其实只是为了让Emacs更适合新手使用而需要解决的问题的冰山一角。社区会如何实现这一点,还有待后续观察。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注LWN深度文章以及开源社区的各种新近言论~