百科问答小站 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怎么控制成员的权限? 
  如果让你来重新设计(或者改造)C++,你打算怎么设计或者修改? 
  如何开始学习 Rust 语言? 
  为什么 Go 和 Rust 常提供静态编译好的 Linux 程序,而 C 不行? 
  C++20 vs Rust,谁胜谁败? 
  为什么Python,Go,Rust等新语言都不支持函数重载? 
  如何看待开源中国Gitee在不通知用户的情况下突然禁止图床外链访问,导致用户权益受损的行为? 
  新手该如何使用 GitHub? 

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





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