AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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:047015
用户头像

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

关注

评论

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

openGauss以科技加速走向高效,低碳环保之路

OpenMLDB 11 月份社区会议纪要

第四范式开发者社区

第四范式 开源社区 OpenMLDB 机器学习数据库

用户任务三步法:教你读懂用户

石云升

11月日更 产品创新

直播预告:智能云分支(Cloud Smart Branch)场景和解决方案介绍

阿里巴巴 阿里云

openGauss内存管理初探

进化政企智能化,华为WeAutomate 3.0重磅发布

网络安全之浏览器端的威胁要塞防御

喀拉峻

网络安全 安全 信息安全

直播预告:云智能分支(Cloud Smart Branch)网络运维研究

阿里巴巴 阿里云

助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?

架构实战营模块6课后作业:小程序电商业务微服务

胡颖

架构实战营

“零信任”的世界,让女性更安全

脑极体

patroni For openGauss高可用方案基本原理

一文搞定前端错误捕获和上报

GrowingIO技术专栏

Web js 数据采集 错误处理

华为发布5G专网集成与边缘DC解决方案2.0,奏响5G toB大合唱

元宇宙、区块链和潘家园

脑极体

【网络安全】这份近200页应急响应文档,帮助了不少安全逆子

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

腾讯WeTest即将亮相MTSC2021中国互联网测试开发大会

WeTest

2021年10月云短信报告出炉,腾讯云蝉联冠军

博睿数据

模块四作业

panxiaochun

架构实战营

虚拟办公、虚拟展会、虚拟偶像,RTE+XR 还能做什么?

声网

人工智能 vr Metaverse

Windows音频引擎架构汇总

grolier

Windows 音频引擎

阿里云 EventBridge 事件驱动架构实践

阿里巴巴云原生

阿里云 云原生 事件驱动 事件驱动架构 EventBridge

不用找了,这本书帮你完全搞定Spring Cloud Alibaba

胡弦(关注公众号架构随笔录)

分布式架构 spring cloud alibaba

DB4AI:使能数据库原生AI计算,助力数据湖场景业务成功

openGauss社区理事会正式成立!3大运营商、7大头部银行等18家理事单位加入

HAProxy适配openGauss使用指导书

OpenInfra基金会年度用户调查报告已出炉!OpenInfra软件应用需求激增

Python Qt GUI设计:QMainWindow、QWidget和QDialog窗口类(基础篇—10)

不脱发的程序猿

PyQt GUI设计 QMainWindow QWidget QDialog

今日谈:BoltDB数据库,一款纯Go实现的KV数据库

Regan Yue

Go 语言 11月日更

直播预告:云智能分支(Cloud Smart Branch)方案介绍和演示

阿里巴巴 阿里云

🎅Less快速学习(上)🎅

空城机

CSS 大前端 less 11月日更

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