Atom 体验报告:21 世纪的可编程编辑器

回想起来,大概是去年这个时候,Github 宣布开始开发 Atom, 当时 V2EX 上处处都有人在求邀请码。由于 Github 并无严格地限制下载和使用,因此虽然我当时没有邀请码,但也试用了一下 Atom. 当时的感受是性能很是差,Bug 很是多,很是难用,因而就放下了。git

后来 2014 年底,大概是据说 Atom 要发布 1.0 版本了(虽然到如今仍未发布),因而又下载试用了一个月左右,发现已经不多遇到 Bug 了,因而完全从 WebStorm 迁移到了 Atom, 后来几个月变成了 Atom 的脑残粉。github

喜欢 Atom 并非由于它已经有多么好用了,直到如今 Atom 也仍然存在不少问题,我更看好的是 Atom 的设计理念和它将来的发展。Atom 但愿兼具易用性和可编程性,它但愿既能够对第一天学习编程的学生展示出易用性,又能够对一个代码大师展示出强大的可编程性。shell

Atom 的第一个特色是它构建于 Web 技术之上,最近几年 Web 技术已经发展成了一种新的「操做系统」,具备一套完整的 API 来加速应用的开发,几乎颠覆了传统的应用开发模式。Atom 构建于 Chromium 和 Node.js 之上,Chromium 是最流行的浏览器之一,借助 Web 技术能够直接经过 HTML 来布局,用 CSS 来影响界面的样式,由于 Atom 使用内建的 Web 引擎,因此能够直接使用新的 Web 技术,没必要顾及浏览器兼容性等琐碎细节。Node.js 则赋予了 JavaScript 使用 C++ 拓展、完整地访问网络和文件系统的能力,而且能够直接使用 NPM 上已有的丰富资源。数据库

Atom 的第二个特色是它使用了一种彻底插件化的设计,Atom 的核心仅仅是一个管理插件的框架(核心仅 15000 行代码),任何「有意义」的功能都被以插件的形式实现,实际上 Atom 内置了大概 70 个插件来实现诸如文件列表、设置面板、命令面板、查找替换之类的基本功能。做为一个通用的编辑器,不太可能直接面面俱到地考虑到各类需求,索性不如经过完全地插件化来适应各类不一样类型的开发任务。Atom 鼓励用户经过编程的方式去进行定制, Atom 具备设计良好的 API, 还有一份 很是美观的文档 被摆在了官网的显著位置。编程

最近一年我写 JavaScript 比较多,我发现对于 JavaScript 这种动态类型、动态做用域的语言,WebStorm 基于静态分析的自动补全费力不讨好,并不能准确地进行提示,索性不如直接用字符串模糊匹配的方式来进行自动补全,毕竟对于我这种重量级用户来讲,是很清楚某个对象具备哪些属性的,补全只是为了加速。api

和 Sublime Text 相比,Atom 的性能确实差了一截,大概和 WebStorm 差很少的样子。我以为 Atom 在性能上仍是有一些提高空间的,目前的卡顿主要是由于 JavaScript 是单线程的,遇到密集计算就会阻塞事件循环,至于解决方案天然就是把密集计算和 DOM 操做 分离成两个线程,但大概这项工做须要插件的开发者一同来配合,因此比较难以开展吧。浏览器

由于 Atom 以插件为中心,因此我也很差说它能作什么、不能作什么,总之目前 Atom 已经能够知足个人全部需求,Atom.io 为每一个用户提供了一个用户页, 各位能够 在这里看到我使用的插件。在将来我但愿 Atom 社区能出现更多好用的插件,将与开发相关的功能都集成进来,例如一个好用的终端、断点调试器、数据库查看器等等,我最近也在尝试本身编写插件,不过目前还没什么成果。网络

https://jysperm.me/2015/04/atom-getting-started/框架

相关文章
相关标签/搜索