为什么人们会说;emacs很适合编写lisp程序,因为它';是用emacs lisp编写的;?

为什么人们会说;emacs很适合编写lisp程序,因为它';是用emacs lisp编写的;?,emacs,lisp,Emacs,Lisp,我可以想象,像用java编写的eclipse这样的IDE很适合编写java程序,因为工具和语言是紧密集成的。因此,如果有人会说“emacs适合编写emacs lisp程序”,那么对我来说也是一样的 但是人们说emacs对所有的lisp方言都有好处,好像所有的lisp方言和emacs都是自然紧密结合的。不仅仅是emacs lisp,不是任何语言,不是任何语言使用repl,而是所有lisp方言。为什么?在emacs lisp中,是否有任何东西是所有lisp方言之间共享的,而不是在其他语言中共享的——

我可以想象,像用java编写的eclipse这样的IDE很适合编写java程序,因为工具和语言是紧密集成的。因此,如果有人会说“emacs适合编写emacs lisp程序”,那么对我来说也是一样的


但是人们说emacs对所有的lisp方言都有好处,好像所有的lisp方言和emacs都是自然紧密结合的。不仅仅是emacs lisp,不是任何语言,不是任何语言使用repl,而是所有lisp方言。为什么?在emacs lisp中,是否有任何东西是所有lisp方言之间共享的,而不是在其他语言中共享的——包括所有使用repl的语言,它是如此独特,以至于只有lisp方言可以从中受益?你能举出一些例子吗?

你是对的,Emacs作为一个通用的Lisp环境没有什么技术优势。但它并不是完全为零——因为Emacs支持解析大多数Lisp,因为它们的表面语法(s表达式)通常非常相似。但这仍然只是一个技术问题

真正的原因是Emacs来自于Lisp之间差异小得多的时代(在语法意义上,语义是一个不同的问题),因此它基本上是复杂Lisp编辑环境的唯一选择。因此,它享受着数十年来使用它进行Lisp编辑的Lisper带来的好处,因此它始终是它的优势之一——另一方面,很少有Lisper选择其他编辑器,因此他们自然缺乏需求。(IIRC,直到不久前,即使是vi克隆也只有基本的帕伦匹配。)

更重要的是,即使是现在,他们之间的关系也很密切,因为阅读elisp对你的J Random Lisper来说要容易得多,所以他们仍然是发现扩展Emacs很容易的人群。当然,您可以对Java和Eclipse提出完全相同的观点——它们都是非常可扩展的工具示例,因此在各自的社区中非常根深蒂固


在执行代码时,对于大多数Lisp(=除elisp之外的所有Lisp),工作都是在子流程中完成的,因此从技术上讲,这与使用任何其他编辑器没有什么不同。

这个问题似乎离题了,可以转移到程序员那里