写点什么

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

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

关注

评论

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

极狐GitLab X 某清洁能源高科技企业,助力零碳技术开创更加美好的零碳世界

极狐GitLab

gitlab cicd geo

Java Pom两个模块需要互相引用怎么办

EquatorCoco

Java Python 前端

为何选择向日葵IT精英版?打造高效独立的个人远程IT支持方案

科技热闻

干货来袭 | 博睿数据《2024IT运维最佳实践白皮书》请查收!

博睿数据

2024牛客网更新的1000多道java后端面试题,花点耐心看完offer拿到手软

架构师之道

java面试

从 PyQt5 窗口闪退问题看 Python 垃圾回收与消息机制

LLLibra146

Python 垃圾回收 PyQt5 消息机制

Termius Beta for Mac强大的 SSH 工具

Mac相关知识分享

MindNode for mac(思维导图软件)中文版

Mac相关知识分享

Visio Viewer for Mac(Visio文件查看工具)

Mac相关知识分享

利用京东API接口实现商品详情数据获取与表格化展示

代码忍者

API 接口 pinduoduo API

SQL Server 索引如何优化?

高端章鱼哥

为什么说ERP系统在国内用不起来?

积木链小链

数字化转型 数字化 ERP

史上最严数据新规落地,出海企业应如何应对这把悬在头上的“达摩克利斯之剑”?

亚马逊云科技 (Amazon Web Services)

2024高质量Java面试题集锦:高级Java工程师面试八股汇总

采菊东篱下

java面试

【教程】第三章:任务数据管理 —— 运筹帷幄,轻松上手

NocoBase

开源 低代码 教程 无代码

Neo4j×Milvus:手把手教你搭建GraphRAG Agent

Zilliz

neo4j 图数据库 Milvus 向量数据库 GraphRAG Agent

如何通过1688平台API接口搭建跨境电商独立站并实现商品采集与下单

代码忍者

API 接口 pinduoduo API

SingleThreadScheduledExecutor线程池设计/场景案例/性能调优/场景适配(架构篇)

肖哥弹架构

Java 并发编程 高并发

【GreatSQL优化器-01】const_table

GreatSQL

sublime text for Mac(代码编辑器)

Mac相关知识分享

VMware Fusion Pro 12 Mac(vm虚拟机)

Mac相关知识分享

升级就是最好的调优:TiDB 用户收益与实践总结报告

TiDB 社区干货传送门

版本升级 7.x 实践 8.x 实践 TiDB Vector

ScheduledThreadPool线程池设计/场景案例/性能调优/场景适配(架构篇)

肖哥弹架构

Java 并发编程 高并发

汽车线束行业MES系统主要功能

万界星空科技

mes 万界星空科技 汽车线束行业 汽车线束mes

Taro 鸿蒙技术内幕系列(二):如何让 W3C 标准的 CSS跑在鸿蒙上

京东零售技术

taro 鸿蒙 前端

淘宝API接入全攻略:从零开始的实战指南

代码忍者

pinduoduo API

事件管理革命:监控系统中统一日志和指标

Greptime 格睿科技

日志 时序数据库 指标

鸿蒙原生游戏再添力作!《蔚蓝档案》HarmonyOS NEXT版上架华为游戏中心

最新动态

软件测试丨标准、高效的管理测试用例和活动

测试人

软件测试

分析时序数据:如何从 InfluxQL 迁移到 SQL

Greptime 格睿科技

sql 时序数据库 InfluxQL

出海正当时,亚马逊云科技深度赋能中国生物医药企业全球化战略

亚马逊云科技 (Amazon Web Services)

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