写点什么

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

  • 2014-03-04
  • 本文字数:1189 字

    阅读完需:约 4 分钟

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 版本也开发当中,一款面向未来的编辑器最终将会以怎样的方式呈现?让我们拭目以待。

2014-03-04 02:046905
用户头像

发布了 89 篇内容, 共 32.7 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

在线SQL转HTMLTable工具

入门小站

工具

Java中java.util.Arrays参考指南

okokabcd

Java

华为云的AI深潜之旅

脑极体

wrk压力测试工具介绍

乌龟哥哥

6月月更

00 后云原生工程师:用开源 Zadig 为思创科技(广州公交)研发开源节流

Zadig

DevOps 研发效能 工程师 自动化运维

linux检测系统是否被入侵(下)

入门小站

Linux

要想Linux命令行玩的溜,还得apropos!此文运维必看!

wljslmz

Linux 运维 6月月更

穿越过后,她说多元宇宙真的存在

脑极体

Prometheus 2.36.0 新特性

耳东@Erdong

release Prometheus 6月月更

笔记

IT蜗壳-Tango

6月月更

油猴脚本学习

Sher10ck

脚本 油猴

这玩意叫跳表?

慕枫技术笔记

数据结构 算法 6月月更

2022最新Java面试突击手册,1000道面试题+优质面经

Java全栈架构师

Java 程序员 面试 算法 计算机网络

自媒体行业内卷严重:企业自媒体应该何去何从

石头IT视角

数据生态第三弹 | RocketMQ OpenMLDB Connector,实时数据到特征工程的高速传输

第四范式开发者社区

人工智能 云原生 实时数据 特征平台 特征工程

Zadig 正式推出 VS Code 插件,本地开发更高效

Zadig

vscode 插件 热部署 本地化开发 Zadig

Android包体积优化(常规、进阶、极致)

yechaoa

android 性能优化 包大小 6月月更 包体积优化

Zadig 构建究竟何强大?一起来实践

Zadig

gitlab 云原生 jenkins Zadig

Zadig + SonarQube,为开发过程安全保驾

Zadig

DevOps 代码扫描 SonarQube 质量内建

穿越过后,她说多元宇宙真的存在

脑极体

HashMap分析-基础属性与结构

zarmnosaj

6月月更

Zadig 面向开发者的自测联调子环境技术方案详解

Zadig

DevOps Service Mesh CI/CD 测试环境治理

Zadig + 洞态 IAST:让安全溶于持续交付

Zadig

DevSecOps 代码安全检测 安全测试 Zadig

稳!上千微服务如何快速接入 Zadig(Helm Chart 篇)

Zadig

DevOps 微服务架构 持续交付 自动化运维 Zadig

带链接跳转的微信红包封面制作教程和使用指南

boshi

小程序 微信红包封面 微信红包

融云通信解决方案 破解企业沟通痛点

融云 RongCloud

Java Core「19」使用 Java IO API 创建 C/S 程序的方法

Samson

学习笔记 Java core 6月月更

稳!上千微服务如何快速接入 Zadig(K8s YAML 篇)

Zadig

DevOps 微服务架构 k8s 持续交付 自动化运维

在线文本过滤小于指定长度工具

入门小站

工具

Go Web 编程入门:HTTP 自定义路由

宇宙之一粟

Go 语言 6月月更

设计电商秒杀系统

凯博无线

Github发布Atom:意欲打造下一代编辑器_GitHub_水羽哲_InfoQ精选文章