百科问答小站 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 的经验给大家好好打造一款趁手的编辑器吧。




  

相关话题

  如何看待 GitHub 上许多学习笔记、面经等项目获得过多的 star? 
  新手该如何使用 GitHub? 
  Atom, Vim, Visual Studio Code, Emacs 哪个好? 
  如何评价 GitHub 与 OpenAI 合作推出的 AI 代码建议方案 Copilot? 
  如何开始学习 Rust 语言? 
  为什么程序员们愿意在GitHub上开源自己的成果给别人免费使用和学习? 
  如何评价 VS Code Remote Development? 
  如果说 Rust/WASM 会逐渐蚕食 JavaScript 生态,那将以怎样的路径进行? 
  GitHub 是怎样的一个存在? 
  编程语言用let等关键字声明变量有什么好处? 

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





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