如何看 emacs-ng 项目?

是有这些障碍, 我是看他们开发邮件列表里, 经常讨论某某图形库过时了, 该废弃了, 某某新的图形库需要支持, 某某图形库某个功能要废弃等等, 这个工作量也挺多, 或许emacs自己积累一套图形库更好? 满足emacs的需求就行, 功能不用那么全面.

这个只是想象一下.

是啊,每过几年就会有新的技术,其实Emacser现在键盘流文本操作挺爽的,之外他们其实只想要三个东西:Web控件、代码补全、耗时操作不卡手

其实就这么简单,一样一样的补好就行了,我以前自己写过编辑器,其实文本就用2D图形库绘制就挺好,如果能配上一些AST和图层技术设施就已经很完美了。

没有必要羡慕 VSCode 那种内在就是Web为基础的技术,关键还是看开发者想法,想法好了,用啥都可以。

没人说要锁定所有全局变量啊,而且目前手动锁定 buffer 只是临时操作,以后可以自动锁定,对单独的 interval 进行锁定等等。

大多数Emacs开发者都对图形编程没有经验,这样对接不同操作系统的贴瓷砖的活要干多少年

这说法有错误,Emacs 开发者中有对各种不同平台的专家,比如说 Alan Third 是对图形处理和 macOS 的专家,Eli Zaretskii 是 MS-Windows 各方面的专家,和 Jan Djaerv 是对 X11 和 GTK 方面的专家。

1 个赞

我不是说锁定全部, 我是说很多插件内部会访问大量全局变量, 用到一个锁一个, 在elisp里写太繁琐了, 而且, 这个插件锁了, 其他插件可能没锁, 另外, 写的人要锁, 读的人也要锁.

另外, 比如锁buffer的 interval期间, 有可能整个buffer被kill了.

顾不了这么宽,我已经做到了简单的并行处理,在背景team中的线程与主线程并行处理,而且做到了不卡顿的 `gnus-summary-insert-new-articles‘

2 个赞

我说的是大多数Emacs开发者对图形的理解不够,不是说没有。

关键是要有就行了,不需要人人都知道如何做到图像绘制

不重要,反正最佳的锁定方式由 lisp 端的程序员来决定,我不管

Emacs现在的做法是,根据边角料的需求,用不同系统的图形API去实现,缺乏Qt这种在图形工具上面底层设计,修修补补太简陋。

反正这样维护足够使用就行。 你要是不相信 Emacs 的开发模式不能做到 Z 轴绘画或 indent line,我过一段时间就做给你看。

开发 emacs 时,最好少谈理论上的废话,埋头干事就行了。

Cairo库有,自己做Z index就可以实现,我当然知道Cairo原理了,我自己图形编程超过十年,Gtk、Qt、Web、X11都写过实战代码,gtk2hs 大部分代码都是我写的。

这些都是对Emacs现状的讨论,讨论可以把事情梳理清楚,产生新的想法。

我对Emacs贡献了几百款插件,什么叫 理论上的废话 ? 你对人有没有尊重?

如果什么功能都用现状来限制,Emacs 就永远不能进步。我记得 MULE 之前,大家都在说 Emacs 永远会死在纯 ASCII + Unix EOL 的时代。在 Emacs 21 之前,大家也说 Emacs 永远会死在显示等款字体的时代。在 Emacs 24 之前,大家普遍认为 Emacs Lisp 不可能做到 lexical binding。

现在普遍的看法就是 Emacs Lisp 永远不能做到并行处理,redisplay 不可能做到图像合成和控件布局等。这一套我早就不相信了。

发现这样不可行,所以改成 sigusr1 设置 current_thread->gc_flag,在 maybe_quit 时停止运行 current_thread 等待 GC 完毕,虽然能用,不清楚会对 GC 开始的速度带来多大的影响。

SIGSTOP 肯定不行,不会 flush callee-saved registers

就事论事,现状不好就讨论,有能力就改进。

我的观点不是技术不能实现,而是缺乏整体设计,包括图形基础设施和多线程,特别是多线程,关键是标准编程模型,太难了就没人用,降低Emacs线程使用门槛以及尽量避免锁来编程是需要继续改进的地方。

图形基础设施我的观点是,Emacs自身对接不同系统,用不同图形库来实现图形基础设施的维护代价很大,不是不能技术实现,而是代价很大。

每个人都可以表达自己的观点,别人和你想法不一样的时候,最好说出自己的观点,我一直赞成你行动,也很高兴有更多有能力的开发者去改进Emacs。

但是请注意用词,不要带有情绪,也不要不耐烦,保持最基本的沟通尊重。

2 个赞

代价很大没关系,只要有人愿意承担就行了(

为了避免此贴无谓的争执,我会自动静音此贴。

我的观点,支持你行动,有更多人改进Emacs始终是好事,比很多人吐槽却没能力开发强很多,但一个技术好不光是能力强,更要考虑整体性的设计和门槛,再牛的技术别的开发者理解不了或者难度太高也很难产生价值。

上面是我此贴最后一句回复,感谢你对xwidget的贡献和此贴的观点,大家学习了很多。

2 个赞

我猜emacs中不能使用VR头盔。VR头盔中倒是有可能使用emacs。

文本编辑器为什么要考虑浏览器的事儿呢?

浏览器为什么要考虑 Emacs 的事儿呢(希望以后 Emacs 能添加 VR 头盔这个功能

浏览器应该算是一个基础设施。用html绘制内容,用js响应操作,不限系统,不限设备。可以显示图片、视频、声音,复杂点的文字布局。

这这些设施的基础上,加上一个文本编辑层很容易。

Emacs的基础设施就没有那么好。