BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Github发布Atom:意欲打造下一代编辑器

| 作者 水羽哲 关注 0 他的粉丝 发布于 2014年3月5日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

2月26日,Github推出了Atom,意欲打造下一代编辑器,Atom汲取了SublimeText、TextMate等编辑器的特点,采用Chromium、Node.js、Coffeescript和LESS,目前已经开放Mac版本内测申请,Atom正式版推出以后将会收费。

开发背景

Github的员工Nathan Sobo在Atom的博客中提到:“Sublime和TextMate十分方便,但是扩展性不足;另一方面,Emacs和 Vim扩展性很强却需要学习日程工作中很少用到的脚本语言。”因此,他们希望找到一个平衡点,于是就有了Atom这个项目。

对于拥抱开源的Github来说,Atom将会把大部分的类库开源,目前已经开放了80多个扩展和插件。

技术堆栈

在Atom中主要使用了如下的技术堆栈:

  • Chromium
  • Node.js
  • Coffeescript
  • LESS

编辑器首先是运行在桌面的,这是他们达成的第一个共识,但是对于一个桌面程序来说,需要跨域不同的平台,编程语言、模式也一直在变迁,易扩展性也将会是一个问题,于是Github选择做一个运行在桌面的Web程序,基础的架构采用的Chromium。Atom采用Space-pen实现视图与控制器绑定,简化了DOM的操作,类似于Backbone.View。从使用的截图中我们也可以看到编辑器其实是一个SPA:

Atom所有的API都提供Node.js扩展,开发者可以通过require来加载模块,默认的开发语言是Coffeescript:

同时,Atom提供了自己的包管理工具apm,通过apm,插件开发者可以将现有的TextMate插件和主题直接转换成Atom适用的版本,由于SublimeText和TextMate的插件有很大的相似性,这在一定程度上将会加速Atom插件的丰富程度,官方也提供了转换教程。

插件与主题

目前Atom有80多个插件,其中不乏Vim-mode、Autosave、Git Diff等实用特性,从开放的语言列表来看,对于C#、Python、Ruby、C等诸多语言已经提供了支持,其中部分语言插件是从TextMate中直接转化过来的,目前还不支持自动补全等特性;官方目前推出了5款主题,用户可以直接使用cmd-shift-P或者偏好页面来安装扩展包。另外,通过修改配置文件,Atom允许开发者对Atom进行深度的定制。

社区

从架构中我们就可以看出,plugin在Atom中占有很高的地位,Atom也意欲借鉴Node.js社区的模式,通过apm的方式将众多的扩展开发者聚集到一起,同时较低的贡献门槛也会在一定程度上提高大家的参与度。

总结

目前Atom还处于beta版本,很多功能还无法和TextMate、SublimeText等相媲美,例如无法打开大文件、不能像SublimeText一样设置项目文件等,但是其在扩展性上的设计将有可能把开发者聚拢起来,未来也将会有更多的开发者贡献自己的插件,这势必会对已有的编辑器带来不小的冲击。

同时作为Github自家的产品,目前还不了解Atom与Github如何深度结合,从现有的官网来看,开发者可以在Atom页面使用OAuth对其进行授权,一种可能性是Atom的web版本也开发当中,一款面向未来的编辑器最终将会以怎样的方式呈现?让我们拭目以待。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT