由"Emacs的Windows版恐将被宣布为“不受支持”"想到Emacs的未来发展

主要是每个 eln 都是要加载的 dll,每个 eln 还要檢查一下是不是比对应 elc 新,随机读取太多了

native 党,每增加一层就会增加一层性能损失和解决 bug 的复杂性,甚至会出现不可解的问题。

所以一直没有采用现在比较流行的基于 Web 的方案,包括其它跨平台方案,感觉像是套了一层虚拟机,从心理上就没有 native 的小,快的爽感。

看到很多人說 Emacs 在 Windows 上很慢,但實際上 Emacs 的 Windows 版本比 macOS (官方而非 emacs plus) 還要更順了一些 (這裡只基於 emacs -q 的情況)。大多是因為大多包的開發者不兼容 Windows (包括專門優化)的情況佔大多數,大於 90% 以上 (依據是個人經驗和以往的 Emacs Survey 調查)。大多數的情況跟開發能力有關,跟 Emacs 本身並沒有關。很多人說的 Windows 難點確實是問題,但問題本身是可以繞過或用別的方式解決;但大多數的人是選擇忽略或堅持 Linux 的開發環境才是正確的選擇。

當然這只是大多情況,其中的細節可能就還有得討論了。:thinking:

6 个赞

emacs29以后windows上的emacs就挺可以用的,只有magit慢一点,org在超大文件中偶尔卡零点几秒。

emacs27以前的emacs在windows上因为字体原因吗(?)特别卡,确实不太好用

2 个赞

赞成。emacs的很多包根本不考虑windows,至少tramp是这样。我现在不得不考虑登录到linux使用emacs / :angry:

2 个赞

Tramp 还是可用的,网上一搜一堆教程。不过有一说一它真的卡到不行,特别是开remote shell 的时候。不知道是它本来就卡,还是因为我用的是 Windows

我在windows上用tramp plink到linux虚拟机里看linux源码+clangd, 这个场景下还是很流畅的

block 渲染指什么?类似org-transclusion的功能还是代码块和引用块?

抱歉,安卓上用不了Metanote,不好评价。 GUI Emacs是全功能的,肯定比Metanote功能丰富。但是逻辑不是很适合触屏,需要自己调整或者外接键盘。

某一部分文字可以有自己独立的渲染和布局,有点像 overlay, 可以实现任意的界面,比如表格,图片,公式,可以水平滚动的代码块,这在手机等窄屏设备上尤其重要,等等,任何现代化美观的界面都可以实现。重点,可以实时编辑和渲染。

flutter是个不太一样的方案, 它的GUI好像都是自己绘制的, 没有用系统提供的组件, 只用了系统最底层的图形接口

是的,flutter 应该是目前移动端跨平台方案中性能最好的,使用的是自绘引擎。不过 Google 现在又在大力支持 Jetbrains 的 Compose Multiplatform,flutter 的命运还是个未知数,作为普通开发者不想这样被折腾 :rofl:

作为一个渲染引擎开发者的建议:如果UI不复杂,没有使用Native UI控件(比如视频、输入框等)混合渲染的情况,也不考虑Native UI的独占特性,那么可以试试flutter。有任何以上需求的都不建议使用flutter

感谢提供建议,中间有段时间确实对 flutter 动心了,最后没有采用是因为文字排版的问题,flutter 应该是没有自己的排版引擎的,Android 上用 SpannableStringBuilder,iOS 上用的是 TextKit,两者差距比较大。

flutter的文字排版默认是harfbuzz,这个是跨平台的

Flutter这种要用在商业公司产品都是不负责任的, Demo质量, 各种bug

「不负责任,Demo质量」稍微有点言重了,我的观点是有一定的使用范围,只不过这个范围比较小

细说下 Flutter 的不堪。

除了native gui lib, 做跨平台的 gui 推荐用什么库?

不算不堪吧,复杂点的app基本都会面临混合渲染的需求,这个在flutter上解决得并不是太好。

如果你对交互体验有一定敏感度,你会发现flutter的UI控件细节不太行,比如list的滑动不如iOS的native控件。

跨平台我基本都推荐RN

1 个赞