百科问答小站 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 上可供新手阅读和玩耍的 Java 项目有哪些? 
  如何轻松阅读 GitHub 上的项目源码 ? 
  哪些特性让你觉得 SVN 比 Git 更好用? 
  Rust 语言现在什么情况,为什么知乎上不怎么讨论Rust语言了呢? 
  Rust, Go 等新兴语言未来在国内好不好找工作? 
  为什么vscode中,js代码打开谷歌浏览器会弹出提示窗口? 
  为什么Markdown在2004年才出现,而推广更晚? 
  如何看待 JetBrains 推出的轻量级编辑器 Fleet? 
  强类型语言的优缺点是什么? 
  如何轻松阅读 GitHub 上的项目源码 ? 

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





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利