写点什么

GitHub 官宣“报废”Atom,创始团队表示正用 Rust 重写一个编辑器

  • 2022-06-09
  • 本文字数:2997 字

    阅读完需:约 10 分钟

GitHub官宣“报废”Atom,创始团队表示正用Rust重写一个编辑器

GitHub 有 Atom,微软有 Visual Studio Code,但向来一山不容二虎。


近日 GitHub 公布计划,将在今年 12 月 15 日正式关停 Atom 项目。作为一款开源文本编辑器,Atom 启发并影响了众多商业应用程序,包括微软 Visual Studio Code、Slack 以及 GitHub Desktop 等等。


GitHub 方面表示,这样做是为了集中精力打造云软件产品。


在周三的公告中,GitHub 解释称“虽然发展软件开发者社区的目标从未动摇,但我们还是决定让 Atom 退役。未来,我们将继续通过微软 Visual Studio Code 和 GitHub Codespaces 践行为云环境提供快速可靠软件开发体验的承诺。”GitHub Codespaces 是一套集成有 Visual Studio Code 的云托管开发环境。


2018 年 6 月,在微软决意收购 GitHub 时,时任 CEO 的 Nat Friedman 曾向 GitHub 社区做出保证,表示 Atom 不仅还在、而且活得很好。Nat Friedman 在 Reddit 论坛的讨论帖中表示,“Atom 是一款出色的编辑器,拥有健康的社区、坚定的粉丝、出色的设计,并在实时协作方面做出了相当亮眼的尝试。在微软,我们也一直在使用 Atom、VS Code、Sublime 乃至 Vim 等各种编辑器,希望开发者们也能在 GitHub 上根据喜欢随意选择编辑器工具。”


“因此,我们将继续开发和支持 Atom 与 VS Code。”



为什么微软有 VS Code 还让 Atom 继续存活?这没道理。


经过短短四年时光,Atom 就陷入了停滞。据 GitHub 称,除了维护和安全更新之外,Atom 项目几年来没有发布过任何重大新功能。在此期间,社区参与度有所下降,本地安装软件业务的吸引力看起来确实不如云应用程序——毕竟后者不仅有望提供稳定的经常性收入,还能锁定供应商、收集用户信息。


Atom 的故事


Atom 作为 GitHub 创建者 Chris Wanstrath( @defunkt )的编外项目,起源于 2008 年中期。当时,Chris 称之为 Atomicity,其初衷是利用 Web 技术来设计一个像 Emacs 一样可定制化的软件,为新一代的开发者提供一个具有完全控制权的编辑器。但是,与很多其他编外项目的命运相同,Chris 在看到 GitHub 成功的希望之后,就搁浅了 Atomicity。


到 2011 年 8 月,GitHub 把 Ace 加入到 github.com 中用于文件的编辑工作,再次激发了 Chris 对于 Atomicity 的兴趣。三天后,Chris 用 Ace 编写了一个运行在原生 WebView 空间内的 OS X 应用。由此,Atom 项目的代码编写工作正式启动。在之后的 3 个月内,Chris 开始在闲暇时间致力于 Atomicity 的工作。到 11 月份,Atomicity 正式更名为 Atom,并升级为了官方的 GitHub 项目。12 月份,treetop 的作者 Nathan Sobo(@nathansobo) 加入了 GitHub,全职进行 Atom 的开发。


2015 年,GitHub 发布了 Atom 1.0 版本。在此前的 18 个月里,Atom 预览版的下载量超过了 130 万,每个月服务超过 35 万活动用户。Atom 允许用户安装第三方包和主题来自定义编辑器的功能和外观,在 1.0 版本时其用户社区发布了 2090 多个 Atom 扩展和 660 个主题,用户可以根据自己的喜好轻松设置它。Atom 1.0 版本实现了 Chris 的初衷——开发者拥有编辑器完全的控制权,成为未来很多工作的基础。



在微软 Visual Studio Code 流行起来之前,Atom 的发展还算正常。Stack Overflow 2016 年开发者调查报告称,根据超过 46,000 人的反馈,12.5% 的软件开发人员使用 Atom。2017 年,Atom 被 20% 的 Web 开发人员、20.7% 的系统管理员和 15.9% 的数据科学家所使用。


Atom 是一个开源项目,因此也有企业根据 Atom 为自己量身定制自己的编辑器,Facebook(Meta)是其中之一。


此前,Facebook 使用 Apple 的 Xcode 软件来构建应用程序。但其代码库几乎与微软的 Windows 操作系统一样大,以至于 Xcode 无法真正处理它,在整个公司范围内,Xcode 每天都会崩溃 50 次左右。


“Xcode 无法满足我们的需求,”Facebook 的 Mike Bolin 说。“它适用于小型开发团队,甚至是中型团队。” 因此,该公司基于 Atom 构建了自己的集成开发环境 (IDE)。这也就是 Nuclide 和 Atom IDE 的起源,它们为 React Native、Hack 和 Flow 项目提供了一流的开发环境。


随后 Nuclide 被 Facebook 开源:https://github.com/facebookarchive/nuclide。用开源来构建更好的产品,而后用开源回报社区,是一个非常好的良性循环。


微软的策略


Visual Studio Code 于 2015 年推出,它或多或少是 Atom 的官方继任者:由 GitHub 的所有者微软开发,并具有许多集成的 GitHub 功能。


这一年,GitHub 将 Atom shell(用于同 Chromium、Node.js 和本机 API 相集成的独立组件)更名为 Electron(基于 Web 技术的跨平台应用程序框架),微软则以 Atom 和 Electron 为基础配合 GitHub 开发出了 Visual Studio Code。


有评价说:“这就是微软臭名昭著的经典套路:接纳、技术扩散,然后……就没有然后了。但此次对 Atom 的下手还是过狠,搞得根本不像常规的项目退役,而是雷霆手段下的排除异己。”


巧合的是,2018 年 12 月,在微软收购 GitHub 半年后,Facebook 决定退出 Nuclide、Atom-IDE 的开源工作,并将 Nuclide 项目进行了归档。


对于 Atom 的退役决定,GitHub 公司一位发言人在邮件采访中表示,“我们希望在未来几年投资于核心业务,也就是专注于增强开发者的云端体验。目前已经有很多强大的 Atom 替代方案能满足用户的各种需求,而且 VS Code 也获得了可观的市场份额,所以我们对此次调整充满信心。”


“Atom 的退役对 GitHub 开发者生态应该不会造成太多影响。GitHub 的 API 仍将得到支持,允许开发者在数千种其他产品中顺畅实现 GitHub 集成。我们还维护有自己的应用程序套件,包括 GitHub Desktop、GitHub Mobile 和 GitHub CLI。”


根据 Stack Overflow  2021 年开发者调查,有 13% 的开发者使用 Atom 作为他们的主要环境,71% 的人使用 VS Code。GitHub 给这些 Atom 用户留下了 6 个月的时间进行迁移。


尽管终期已定,但 Atom 巨大的影响力从 Electron 框架身上就可见一斑。时至今日,Electron.js 仍然是 Discord、Skype、Slack、Trello 和 Visual Studio Code 等应用程序的基础。但技术变化总是说来就来,微软之前就曾表示打算在 Teams 中摆脱 Electron。未来,Flutter、Tauri 以及微软刚刚公布的.NET Multi-platform App UI (.NET MAUI) 等跨平台框架也可能彻底取代 Electron。


另外, GitHub Atom 编辑器的同一团队正在创建一个新的名为 Zed 项目,由核心贡献者 Max Brunsfeld 和创始成员 Nathan Sobo 领导。


Nathan Sobo 表示, Zed 作为 Atom 的继任者,用 Rust 编写,自定义原生 UI 框架,设计为“协作”产品,将于本周推出 Private Alpha 版。



无论如何,2022 年 12 月 15 日“金盆洗手”之后,Atom 应该也不会立马退出江湖。GitHub 倒是打算把 Atom repo 归档封存,但这毕竟是款开源编辑器,只要愿意继续支持,大家还是可以随意使用。


参考链接:


https://www.theregister.com/2022/06/08/github_atom_dropped/


https://changelog.com/podcast/241


https://www.infoq.cn/article/2015/07/atom-history


https://www.wired.com/2015/06/github-atoms-code-editor-nerds-take-universe/


https://news.ycombinator.com/item?id=31668426


今日好文推荐


印度萌新令人绝望的操作:提交PR“轰炸”近40万开发者,GitHub负责?


我用一个跨平台 Web 应用替换了原生 iOS 应用,竟没人发现


腾讯薪酬大改革:升职不直接调薪;马斯克称特斯拉需裁员10%,暂停全球招聘;华为成立第三批军团|Q资讯


成为函数式编程工程师四年,我为什么说它既“流氓”又“可爱”

2022-06-09 15:3717764

评论

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

云与开源,共植数字世界的根

Apache Flink

大数据 flink 实时计算

架构实战营模块二作业

张Dave

0停机迁移Nacos?Java字节码技术来帮忙

华为云开发者联盟

Java 云计算 华为云 12 月 PK 榜

学习编程必须知道的三个网站

邱比特讲编程

GitHub 编程 Google Stack Overflow 编程工具

前端工程师leetcode算法面试必备-二叉树深度广度遍历

js2030code

JavaScript LeetCode

【圣诞节】会呼吸的玫瑰爱心代码 -李峋爱心续 动画演示思路 代码开源

非喵鱼

Java Python 程序员 前端 爱心代码

前端面试什么样的回答才能让面试官满意

loveX001

JavaScript

用javascript分类刷leetcode3.动态规划(图文视频讲解)

js2030code

JavaScript LeetCode

前端二面常考面试题(必备)

loveX001

JavaScript

那些你不知道的 CSS 自定义形状网格布局 3

南城FE

CSS 前端 布局

Verilog 的连续赋值

芯动大师

Verilog Verilog语法 连续赋值

设计模式之美——单一职责(Single Responsibility Principle)

GalaxyCreater

设计模式

前端工程师leetcode算法面试必备-二叉树的构造和遍历

js2030code

算法 LeetCode

异构混排在vivo互联网的技术实践

vivo互联网技术

算法 异构 混排

谈谈前端性能优化-面试版

loveX001

JavaScript

React源码分析8-状态更新的优先级机制

flyzz177

React

极客时间运维进阶训练营第七周作业

老曹

网络编程与通信原理

Java 架构

2022-12-11:行程和用户。以下为输出结果,请问sql语句如何写? +------------+-------------------+ | Day | Cancellation

福大大架构师每日一题

数据库 福大大

react源码中的fiber架构

flyzz177

React

react源码中的hooks

flyzz177

React

OpenTelemetry系列 (二)|初探OpenTelemetry

骑牛上青山

Java 调用链 OpenTelemetry 微服务调用链

开始用ChatGPT写作

SkyFire

ChatGPT

架构实战 - 模块 2 作业

mm

微信朋友圈 #架构实战营

运维进阶训练营 -W07H

b1a2e1u1u

运维

从React源码分析看useEffect

flyzz177

React

react源码中的协调与调度

flyzz177

React

流处理基础概念-窗口与时间

穿过生命散发芬芳

流处理 12月月更

记一次Mysql大数据分页优化问题

石臻臻的杂货铺

MySQL 数据库

React源码分析7-state计算流程和优先级

flyzz177

React

经常会采坑的javascript原型应试题

loveX001

JavaScript

GitHub官宣“报废”Atom,创始团队表示正用Rust重写一个编辑器_开源_Tina_InfoQ精选文章