对, 我说的就是最上层开发的时候, 传统的多线程竞争和死锁什么的都要考虑. 然后跟emacs现有的多线程好像没多少差别. 还是要面对很多复杂情况.
那只能建议喜欢修改全局变量的开发者稍微更改一下习惯, 少用可变的全局变量. 事实上我觉得大部分会被"意外"修改的全局变量只有 defcustom
等定义的 user option. "有意"修改的必定是开发者可控的, 不要让这些变得可打断就行了
多线程没有什么魔法, 就是图形线程和计算线程分开, OS计算资源不够的时候强制调度计算线程暂停一下, 让图形线程有更多的响应资源, 用户就不会觉得卡了。
Emacs本身的C语言底层其实是可以直接支持多线程的, 难点就是 Elisp 这一块就是一团大面条, 很难理的清楚, 即使多线程模型引入, 我估计很长时间只能都没法下手, 因为 Elisp 大面条的依赖关系原来有多方便, 多线程理开就有多麻烦。
2 个赞
emacs比Linux岁数大。
因为我感觉rust这种激进派更合我的胃口吧,起码rust有那种重写世界的勇气。可能我稍微年轻一点,所有有这种倾向。另外就是,rust面向对象,还有自己的包管理器,性能,更好的抽象,我感觉没有理由rust不赢在下一代。