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/