Wing3.0体验版:极致顺畅,不止于快
年根将至,大家怀着欣喜期待的心情盼望着新年到来。小编也趁这个时机,“夜探”白鹭工具开发组,为大家带来Wing的最新消息。
本次透露,Wing研发团队将于近期发布一个新的版本——Wing3.0体验版!听说与旧版本相比,Wing3.0体验版采用了全新技术架构。那么,问题来了!新架构有什么不同?能给开发者带来什么“福利”?下面由白鹭时代架构师王泽带大家一探究竟:
在 Wing 2.0版本发布后的这些日子里,随着和开发者的不断交流,我们收到了白鹭开发者们对于Wing产品提出了很多意见。尤其是速度方面。
一位开发者告诉我们,现在的Wing在大型项目中不够顺畅。以至于开发过程中,总会被迫停下来“休息”一下。这成为了他写代码效率的瓶颈。就好像是一颗 i7最新的CPU,配了一块只有5400转的硬盘一般。他希望Wing作为一款IDE,应该可以让开发者更加容易地将想法转化成代码。
开发者所求,其实也正是我们所想。只不过,在之前的一段时间,我们显然没有满足大家的期望。因此,我们仔细审视了过去采用的技术、架构;反复论证原架构是否能够提供用户期望中的体验。并对是否重构展开激烈的论战。
如果重构,采用新的技术,那么我们相当于重做一个全新的产品。如果不重构,我们将在未来无法为用户提供预想的体验。其实,从内部讨论的意见中,我们也讨论过可以对现有的Wing进行优化以提高性能。但我们最后还是选择了使用新的架构重做一个Wing。因为,我们希望为开发者提供极致顺畅的开发体验,不论道路有多艰难。
Wing 3.0将会提供什么功能?
l 作为重新设计的Wing,原有 Wing2.5版本的核心功能会逐步移植过来。
l 更好的资源管理体验
l 更加便捷的文件搜索、文件跳转功能
l 130多项自定义设置
l 200多个可以绑定快捷键的命令。
l 14种颜色配置,兼容 SublimeText 和 Textmate、VSCode的主题格式。
l 40种语言的代码高亮功能,支持扩展自定义语言和XML标签。
l 浏览器与Node.js调试功能
另外,还将提供更多振奋人心的新功能:
l UI插件开发框架,允许开发者打造自己的IDE扩展
l 插件管理,更多的插件扩展机制,让每位用户有着更适合自己的极致体验
l 素材商城,丰富的代码、模版、设计资源,随心下载
l 更好的一体化游戏及应用解决方案
Wing还将支持引擎后续版本中的新特性,这里先卖个关子。{坏笑}
Wing 3.0 如何做到更好的开发体验?
Wing3.0采用 Electron进行重写,同时集成了VS Code编辑器的核心内容。
众所周知,Electron最初是Github为Atom编辑器开发的桌面应用运行环境,它集成了Node.js提供的本机资源的访问能力,同时将UI界面运行在基于Chromium的环境当中。随着硬件及网络环境的发展,及 Google、Microsoft 等巨头的不断加大投入,像 Electron 这样的基于Web技术的客户端框架已经成为了最主流的开发方式。比如 VSCode 就是 Microsoft 最近开源的非常优秀的基于 Electron 的跨平台文本编辑器。
在白鹭2014年初成立,开始做工具体系时,我们选用了当时最为成熟,也最有丰富代码类库积累的 AdobeAIR作为工具体系运行时架构。在这两年中,我们已经把 AdobeAIR用到了极致,Egret Wing 甚至有可能是世界上最为复杂、最大型的 AIR 桌面应用之一。但是随着 AdobeAIR的维护力度越来越小,同时由于他是个闭源的黑盒体系,在操作系统接口层面如果有一些问题的话很难解决。再加上以 Web为中心的桌面客户端架构在这一年不断完善,依托于 Google 提供的强大的 V8 + Chromium Blink内核运行环境,Github提供的完整的Electron 应用运行时,Microsoft 提供的成熟的 VSCode 与 Monaco 编辑器框架,我们决定“顺势而为”,站在巨人肩膀上,方能走的更远。
这个体验版主要做了什么?
这个体验版主要改进了代码编辑器的部分:
l 打开文件更快,因此切换顺畅,消除了卡顿的感觉。
l 更迅速的智能感知和错误提示。
l EXML智能提示中添加了对Imagesource属性的支持,能够自动提示res.json 中的资源名。
l TS编辑中添加了常用的egret代码片段
那么新的架构相比Wing2.5的优势?
l 首先是界面展现,新的Wing 3.0版本界面是基于React的虚拟DOM架构。这样做是为了追求DOM自身低能耗的优势,同时合理化的避免了DOM渲染效率低的问题,在对于IDE这样静态UI比例非常大的使用情景来说,有着极高的展现效率。并且在Wing 3.0的计划中,部分需要高表现力的UI界面将会直接使用WebGL来渲染,已达到更强的渲染效果。WebGL渲染在IDE文字渲染方面也会比Canvas渲染有优势,文字渲染更加清晰。
l 其次是大型项目加载,反思Wing 2.5 ,被吐槽最多的是大型项目的加载速度。在最初设计Wing时,它的定位是一款GUI编辑器,随着功能的逐渐丰富及强大后,原有的同步加载架构成为了Wing的加载性能瓶颈。Wing 3.0重构了文件加载部分,吸取Node.js及VS Code核心编辑器的优势,将所有核心文件系统访问异步化、延迟加载,极大的提升文件加载速度。
l 之后是代码编辑器, Wing 3.0抛弃了从 Wing 最初版本以来一直沿用的文本编辑架构,而是集成了微软的 Monaco 编辑器。与其他国内同类工具相比,本次架构更多的汲取了VS Code的核心优势。这使得编辑器的文本输入体验和技术上的可扩展性得到了很大的提升,特别是括号、引号智能补全,光标智能聚焦,代码片段模板等常用代码输入辅助功能得到了更加智能的提升,由于 Monaco 目前被用在Visual Studio Online 和 VS Code 中,所以这也是Wing 3.0 的体验版在很多方面看起来像 VS Code的原因。
l 最后是响应速度,IDE主要核心内容是处理字符串相关内容,得益于 V8 JS引擎强大的JIT编译技术,JavaScript在处理字符串时的计算效率至少高于ActionScript十倍以上,使得新的架构下语法着色、全局搜索等于字符串处理相关功能响应速度慢的槽点会得到根本性的解决。
Wing3.0将在什么时间发布?
Wing3.0的第一个Prerelease版本将会在春节后的一段时间内与大家见面{害羞脸}。届时新版本将会包含Wing2.5的大部分功能。在那之前,我们会“流出”一些小版本供大家体验,搜集反馈意见,完善产品。最近我们将发布一个Wing3.0的体验版,开发者就已经可以感受到新架构带来的性能红利。简单概括,就是“快”。
这个体验版作为新架构下的“婴儿”,还有诸多功能没有完成。因此:
1、目前从Wing老版本的用户向3.0版本做迁移还是需要有一些代价的。因为老版本的一些功能在 3.0 体验版中尚未实现,我们正在抓紧时间开发。3.0最终版本会与2.0在配置文件结构、用户界面等诸多方面保持一致。为用户提供零成本迁移。
2、目前还没有搭建完插件体系。基于全新版本的 Wing插件体系正在开发中,会在未来的一个版本中进行呈现,并布置更多更细更密集的扩展点,同时提供更容易的插件开发过程,并与 Egret 老版本的插件完全兼容。期望与开发者与我们一同打造Wing的插件生态。
3、Wing 3.0体验版本还有很多体验优化可以进行进一步优化。比如与 2.0版本的快捷键没有完全统一,布局不够个性化等等。这些问题我们会聆听开发者的呼声,不断收集和改良。
我们期望Wing能够成为开发者们腾飞的翅膀。当我们每天戴上耳机,冲一杯咖啡后,就可以“基情澎湃”地敲击着键盘,把脑海中的点子变成程序,不受束缚,乐在其中。我们也将为此而努力。
最后,欢迎使用wing3.0体验版,无论是点赞还是吐槽,我们都会认真聆听,与你并肩,让Wing好,让开发更简单。
我是白鹭,我在这里守候。
Wing3.0体验下载地址:http://bbs.egret.com/thread-16793-1-1.html
我是白鹭架构师王泽,欢迎您试用Wing3.0体验版并告诉我们你的感受。您的每一条反馈,或许都将成为Wing的一个改变或新功能。强烈欢迎神吐槽,欢迎高质量喷子!我将回复这篇文章下的每一条留言,白鹭的引擎团队期待您对Wing的关注与支持!
。- 标签:
- 编辑:刘柳
- 相关文章