大家有没有觉得Elisp无法承载一个现代化的Emacs?

好吧,没玩过ios,但貌似emacs也有xcode的package

但其实,这里只说到编码,app的提交审核、签名之类的,那只能算是xcode的“套件”吧,就好比,可以用emacs写vhdl,仿真还是得上xlinx之类厂家的仿真器

其实Swift的语言支持Emacs做的也不好……

坐等LSP统一天下吧……

我是很理解你遇到一个据说能提高效率的工具,然后被它深深恶心了一回的心情的,开源,免费软件里这种情况太多了,开源,免费常常意味着 no warranty。我是站在你这边的。

成为一个工具的专家是一件不足挂齿的事情,但是掌握一个工具确实要付出努力,比如学会使用Shell,Git,Docker等工具,仍然要去看文档,去实际使用积累经验。

有些不方便的地方也确实是有问题。自以为是的傲慢和思想习惯的惰性使人麻木,我觉得矫枉必须过正,不过 Emacs 似乎缺少有魄力的开发者(比如 Linus)。

4 个赞

Emacs大多数的实际问题,还是起源于FSF的理念和思想与现代软件开发的主流思想完全不一样……FSF是一个追求全工具链自由 (Free / Libre)的组织,如果某个技术/实现与FSF的意识形态不符,即使再好用,FSF也不会采纳。

所以除非Emacs不再由FSF领导开发,这些问题才能改善吧

然而看了26之后我真的发现这种情况有愈演愈烈之势。

所以与其说Emacs Lisp这门语言承载不了一个现代化的Emacs,还不如说FSF的思想和理念承载不了一个现代化的Emacs。如果“意识形态大于实用性”的理念一直存在下去,那么我相信Emacs也不会有什么太大的改变。

然而这真的不好吗?

1 个赞

其他的情况不知道,emacs长寿是肯定的,估计可以坚持到我们这一批人老死,我们就可以在墓碑上刻一个 emacser

3 个赞

现在软件行业的蓬勃发展,和FSF这种坚持是分不开的.有所得就有所失,正常现象.

另外关于什么是"现代化"其实是一个带有一定误导成分,隐含这政治正确的说法,如果"流行"就是"现代化,那就没什么话可说了.

http://www.ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html

emacsist

1 个赞

26有什么问题?

一直很认同GNU和emacs的哲学和理念, 做基础而通用和够用的功能, 不做太花哨的功能, 花哨的功能往往寿命不长, 实在想做可以自己写扩展. 正是这样才能有这么悠久的历史.

人家本来的目标不是IDE, 只不过扩展功能太强, 被很多人用作了IDE, 而很多用户的问题都在扩展的功能上, 而且很多用户的需求也是IDE, 这样的话用IDE就行了.

不过, 现在有了language server, 普通编辑器也看到了春天, 能实现跟IDE差不多的功能了, 比较完美的开发工具方案.

感觉emacs的问题不在语言上, 而在架构和性能上, 单线程或者说不能并发是个巨大的瓶颈, 影响很多高级复杂功能的扩展, 也导致自身某些基本功能的性能问题.

另外很多所谓语言问题, 都不是语言问题, 可以用一个框架来解决, 比如java里面的众多框架.

您又不是给 Emacs 搞底层的,怕啥意識形態问題?

我不是给Emacs搞底层的没错,但是我是搞意识形态的啊……虽然我也不搞Emacs的意识形态……

1 个赞

我只是看到了一个越来越贴近“Emacs-Lisp 解释器”的Emacs……

然後还有人要 Lisp Machine

基础功能, 无可厚非, 就比如你是ios开发者, emacs是ios系统, 系统肯定要专注系统的功能.

不知道你需要的是什么.

所以我并没有反对这一点啊,相反我觉得Emacs想要生存下去,应该继续贯彻这一点。只提供一个基本的框架,其它高级功能都由插件和配置完成。

否则跟一众“现代”编辑器还有什么区别?

我最烦的是四不像的那种,既没有做到开箱即用,也没有做到完全可配置……虽然我也不知道我说的是谁……

另外我不是iOS开发,只是个半吊子……不然也不会写这么愚蠢的回复了……

1 个赞

好吧, 原来是自己人, 哈哈

emacs和linux kernel有一些共同点的,都是开源的形式开发(大教堂与集市)
有时候,坚持玩emacs,使用linux,也许有些所谓的情怀在里面,你觉得linux内核就一定是最NB的吗,不然,还有很多优秀的os内核,发展到如今,linux内核已经很臃肿了,一层层的抽象,就好比现在的android,当然,linux的语言集成度更高(只使用c和asm)
emacs也是如此,如果以一个现代软件的角度来看待,lisp不论性能上还是语法上,不一定都是最优秀的,但作为一个emacs user,我觉得适合自己、够用就可以了

再多说几句,可能只是个人的一些体会:
1、现在很多语言,都不再是刚开始创建PL那样了,那个时代只有Fortran和lisp,现代的语言已经慢慢的开始融合各种特性了,尤其是FP方面,不管是语言形式上,还是语法糖上面
2、现代有一些语言也在借鉴成功的大项目的风格,比如go,go的defer,其实很像linux内核里面的goto错误处理,当然,将参数类型放在后面,似乎有种haskell的风格
3、而现在有些语言的函数操作符前缀形式,似乎也是在模仿lisp
上面说的不一定对,仅仅只是我自己的一些体会,说的不对的地方,欢迎指出来😊

linux内核,至少在GUI方面,是无法和某些架构相比的,也因此,linux很大一部分只是存在server端而已,android,算是比较特殊的一个吧