百科问答小站 logo
百科问答小站 font logo



如何评价GitHub准备推出下一代文本编辑器Xray? 第1页

  

user avatar   skywind3000 网友的相关建议: 
      

下一代编辑器的方向就是进程分离:使用 C/Cpp/Rust 开发的核心 + Electron / Qt 开发界面

这就是 NeoVim 这几年走出来的路,界面这种东西更新迭代快,需要跨平台,需要好看,紧跟当下流行风格。用 Cpp 显然是一件很劳累的事情,所以 NeoVim 做的最主要的事情就是把界面给 externalize 化,C 只实现文本编辑和脚本系统这些非界面的事情,界面部分让另外一个进程来做,界面进程通过管道+msgpack 来和内核进程通信,界面进程会把用户的操作指令发送给编辑器内核进程,编辑器内核进程又会将需要显示些什么发送给外部进程,由外部进程显示出来。

由此,编辑器内核只关注性能和功能,而外部界面进程就着重跨平台和用户体验。

Atom 真的是成也 Electron ,败也 Electron。用 Electron 开发内核,开发是容易了,但是结果大家都看到了。事实证明 Electron 并不擅长做编辑器内核这种一定复杂度又要求性能的东西,即便多次的把各种东西由 electron 挪到 Cpp 中,也是徒劳的。

所以 NeoVim 的实践结果告诉大家,编辑器内核和界面,两种完全不同的开发模式,不能混为一谈。所以自 NeoVim 发布后,已经有 22 种 运行再不同操作系统下的 GUI 前端了,我自己用的就是一款用 Electron 开发的 GUI 前端:

无独有偶,google 也开发了一个 rust 做核心,使用json进行进程间通信的编辑器:

xi-editor 使用 python 作为脚本系统,目前已经开发近两年,完善程度比 github 的 xray 高不少,而且目前有 9种 不同的 GUI 前端,包括文本终端模式和桌面 GUI 模式。

Github 对文本编辑器的“不妥协”的探索精神是令人敬佩的,瞅了一眼它的开发者都是以前 Atom 的核心团队,希望他们能充分吸取 Atom 的经验给大家好好打造一款趁手的编辑器吧。




  

相关话题

  如何克服解决 Git 冲突的恐惧症? 
  如何克服解决 Git 冲突的恐惧症? 
  真的会有人用 vim 开发大的项目吗? 
  如何评价GitHub准备推出下一代文本编辑器Xray? 
  Github、Node、React、pytorch 等官网声明支援乌克兰,如何看待开源组织参与政治? 
  个人使用github page建了博客,购买了腾讯云的.cn域名,需要备案吗?如何备案? 
  放在GitHub的简历被别人fork了怎么办? 
  为什么Markdown在2004年才出现,而推广更晚? 
  怎么看待 Libra 使用 Rust 编写? 
  Visual Studio Code 如何编写运行 C、C++ 程序? 

前一个讨论
为什么要学函数式编程?
下一个讨论
有哪些「人不可貌相」的事情?





© 2024-11-25 - tinynew.org. All Rights Reserved.
© 2024-11-25 - tinynew.org. 保留所有权利