50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

软件开发除了23种设计模式,还有7个开发原则需要了解

华为云开发者联盟

设计模式 软件开发 开发 对象 SOLID

和 VMware、深信服、天翼云、招商云专家一起聊聊云原生边缘计算

阿里巴巴云原生

阿里云 容器 云原生 KubeMeet 线下活动

WICC 花城登场,揭秘时代变局下通信服务新形态

融云 RongCloud

开发者 社交 元宇宙 泛娱乐 通信云技术大会

100行代码,轻松搞定文本编辑器中草稿箱

Tom弹架构

Java 架构 设计模式

奖金翻倍!Flink Forward Asia Hackathon 最新参赛指南请查收

Apache Flink

大数据 flink 编程 后端 hackathon

应用不停机发布的思考与初识

陈俊

高可用 技术架构 不停机发布

Kubernetes 已经成为云原生时代的安卓,这就够了吗?

阿里巴巴云原生

阿里云 Kubernetes 云原生 学习资料 应用管理平台

一文带你快速掌握PTN网络的路由计算

鲸品堂

模块四作业

Geek_1d37ea

架构训练营

模块四学习总结

Geek_1d37ea

架构训练营

0.99M,150FPS,移动端超轻量目标检测算法PP-PicoDet来了!

百度大脑

人工智能 百度

灵犀平台—API的全可视化开发

鲸品堂

开发者 工具

又添权威认定,旺链科技通过可信区块链专项认证!

旺链科技

区块链 产业区块链 技术测评 数字化经济

云原生时代:看 Apache APISIX 如何玩转可观测性

API7.ai 技术团队

云原生 可观测性 Skywalking API网关 Apache APISIX

一张图 GET 社交泛娱乐出海大招

融云 RongCloud

Forrester发布首份《中国低代码平台发展报告》,有多少企业应用低代码?

J2PaaS低代码平台

敏捷开发 低代码 低代码开发 低代码平台 低代码报告

openGauss开源自动化测试框架Yat,增强社区测试能力

Meetup 报名|开源分布式数据库探索和应用

OceanBase 数据库

数据库 分布式 活动 技术交流 oceanbase

深入理解 WKWebView(入门篇)—— WebKit 源码调试与分析

百度Geek说

Webkit

DevEco Testing,新增分布式测试功能|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

压缩比达到7:1,TDengine助力校园智慧用电系统降本增效

TDengine

tdengine 时序数据库

web技术分享| LRU 缓存淘汰算法

anyRTC开发者

缓存 音视频 WebRTC LRU web技术分享

售后支持领域的服务指标

Geek_utwige

方法论 技术管理 指标体系 数据指标 客户服务

【概率】抽屉中的袜子

潮汐朝夕

概率

数仓如何限制临时数据文件下盘量

华为云开发者联盟

sql 线程 GaussDB(DWS) 临时文件 落盘

Sechunter移动应用隐私合规检测详解

华为云开发者联盟

移动应用 目标检测 隐私 Sechunter 隐私合规

HarmonyOS内核技术大揭秘|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

[SpringBoot源码分析]SpringBoot如何启动

零点999

spring SpringBoot 2

Tapdata 在线研讨会:DaaS vs 大数据平台,是竞争还是共处?

tapdata

数据库

稳若磐石的焱融 SaaS 服务平台背后,是数据生态的崛起

焱融科技

云计算 分布式 高性能 公有云 文件存储

学不懂Netty?看不懂源码?不存在的,手把手带你阅读Netty源码

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

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