想知道现在Emacs的GUI是如何发展的

可惜 McCLIM 的 OpenGL binding 没有什么动静。

玩高科技还是玩Linux吧, Mac上就应用比Linux多一点, 方便一点, 其他没啥优势.

1 个赞

嗯嗯我说的就是sublime的模式 在每个平台下用native的GUI框架开发

sublime 默认是GTK+开发的,应该都可以使用各个平台的加速.

除非是OpenGL渲染,一般2D的只是借助显卡加速通道, 加速没有OpenGL基础的加速明显, 但是 OpenGL 技术开发的图形库遇到 Linux 渣渣显卡驱动都会把一个好的项目玩死的.

1 个赞

js感觉跟lisp差不多啊, 也是一个解释器, 如果js不靠谱, 那lisp也差不多. 如果说因为js开发的应用太复杂会内存泄漏, 那用lisp也一样吧?

另外, 由于开发人力资源丰富, js的效率可能比emacs里的lisp高很多.

内存泄露和是不是解释器没关系,而是web的开发方式一定会内存泄露,因为他们只是内容渲染,并不像客户端那样严格管理对象生命周期。

js写抽象语法树能写的过lisp?

js党就是天天歪歪所有东西都用js写,Google一个广告公司,啥说都信啊,真是的

5 个赞

electron就是native啊, 而且支持gpu加速. 最主要的是支持web页面渲染, 可以显示和编辑word设置pdf级别的丰富格式文档, 这个是sublime之类的远远达不到的.

JS的感觉是用的人巨多,还都特别能折腾,搞得就很热闹。

你真的用 Electron CEF 这些开发过本地客户端吗?

C/C++ 启动用时 50ms , Web框架的应用最少 1000ms ~ 2000ms 一个复杂的GTK+程序,可以控制内存在 10M 以内, Web框架本身都不止50MB, 随便加载一个页面就是几百兆内存.

我开发操作系统十几年了, 用WebKit架构构建过整个操作系统, 玩了3年时间, 最后全部用 C++/Go 替换了所有的Web开发的模块.

Html5/JS 永远都不可能成为任何大型程序和操作系统的开发技术选型, 做点像网易云音乐的东西就可以了. 如果真的那么好, Android, ChromeOS, MacOS, Windows底层为啥都不用 JS 开发? 这些都是开发浏览器引擎的大厂啊.

所以, 凡是认真思考, 虚心学习, 不要人云亦云.

10 个赞

复杂度再高一个层级, Sublime吊打VS Code, VS Code 也就写写前端还可以, 内存泄漏的问题早晚成为 VS Code 的发展瓶颈.

还有 Electron 不是 Native, 就是一个浏览器引擎, 还不如 CEF 性能高, 渲染加速都是浏览器和操作系统做的, 如果同样的硬件显卡和加速资源.

浏览器本身就很重, 是不可能有原生客户端直接绘制性能快的.

2 个赞

讨论electron的好坏暂时没多大意义吧,electron已经在某些场景下很成功了。

目前Emacs未来正在走向哪一步呢? 大佬们关心GUI么?

这个就是静态语言和动态语言的区别了, 没有最终结论, 焦点不在这里.

先不说语法树这些很少用到的东西. 目前emacs的lisp加底层native模式, 跟electron的底层native加js模式基本一样. 如果emacs继续发展, lisp程序也会复杂, 变得跟js一样, 会遇到同样的问题, 现在emacs省内存大部分是因为两者功能不在一个数量级. 也许emacs可以限制自己不发展得那么高级, 等到有新的技术出现.

js拯救不了emacs,emacs各种高性能版本写出来都没有意义,因为不能跑这些精雕细琢的elisp插件,再高性能都没用。

就这样吧,能改早就改了

是很慢, 不过就像emacs的buffer的渲染, 如果支持的格式更丰富, 显示效果更好, 可能就越来越接近electron了, 启动时间可能也很接近, 到时候emacs显示一个buffer, 就像浏览器显示一个web页面.

问题是我们需不需要这些功能, 我自己是挺想要这些功能.

如果发展到浏览器这个级别, 确实可以在里面开发操作系统了, 这样是挺耗资源, 不过操作系统不是必须, 额外功能都是插件的形式, 担心耗资源, 不去安装它就行了.

js目前确实不能做系统, 而且在手机上很少用. emacs用elecrton不是为了做系统,而是为了支持更丰富一点的功能, 类似于微信小程序的级别, 这个级别还是可以的吧?

其实我做的项目https://github.com/manateelazycat/emacs-application-framework

已经实现你说的东西了,qt的图形性能,python的扩展生态,不侵入emacs现在的代码仓库。

old school就保持emacs现在的pure text world,希望现代化发展和扩展emacs的就用我的框架开发图形插件吧。

这是我想到唯一可以让emacs不失本色的前提下,追上那些ide的基础设施的方法

5 个赞

VS code里面, 微软自己的代码的质量应该可以, 容易泄漏的是第三方插件吧? 另外, 像内存泄漏这种问题, 应该不属于不可解决问题, 只是问题还没有严重到一定的程序, 所以不着急解决, 毕竟属于软件逻辑和算法问题而已.

你真是没玩过web引擎啊,不说了,说了你也不懂啊

2 个赞

嗯, 你这个项目确实挺不错, 实现了很多想要的功能, 等忙完这一阵准备折腾一下.

现在的浏览器好像都变成多进程模式了, 页面渲染在独立的进程里, 我在想, emacs是不是也可以充当浏览器主进程的功能? 这样来渲染复杂页面(比如图片, 视频, pdf, 网页浏览)?

很早以前看到你有段时间告别emacs, 却玩haskell了? 说是emacs不够酷? 不知道有没有记错. 挺佩服.

你上面说的所有功能都实现了