Atom簡史:差點被Github創始人放棄
作為GitHub專門為開發者推出的跨平臺文本編輯器, Atom 預覽版之前共經歷了155次更新,在穩性能、穩定性以及模塊化等方面進行了多項改進。 近日,GitHub正式發布Atom 1.0版本 。接下來,本文從Atom的歷史開始講起,對其進行簡要介紹。
Atom作為GitHub創建者Chris Wanstrath( @defunkt )的編外項目,起源于2008年中期。當時,Chris稱之為Atomicity,其初衷是利用web技術來設計一個像Emacs一樣可定制化的軟件,為 新一代的開發者提供一個具有完全控制權的編輯器。但是,與很多其他編外項目的命運相同,Chris在看到GitHub成功的希望之后,就擱淺了 Atomicity。
之后,基于Node.JS構建的JavaScript程序開發Web IDE——Cloud9出現,為JS、HTML、CSS等混合代碼提供了著色顯示的文本編輯器,再次影響了Atomicity的進度。到2011年8月,GitHub把 Ace 加入到github.com中用于文件的編輯工作,再次激發了Chris對于Atomicity的興趣。三天后,Chris用Ace編寫了一個運行在原生WebView空間內的OS X應用。由此,Atom項目的代碼編寫工作正式啟動。
在之后的3個月內, @defunkt 和 @probablycorey 開始在閑暇時間一起致力于Atomicity的工作。到11月份,Atomicity正式更名為Atom,并升級為了官方的GitHub項目。12月份, treetop 的作者 @nathansobo 加入了GitHub,全職進行Atom的開發。之后,Atom就開始沿著正規的開發流行進行不斷更新,更多的細節可參考 atom/atom git history 和 contributor graphs 。
在過去的18個月中,Atom預覽版的下載量超過了130萬,每個月服務超過35萬活動用戶。目前,Atom社區共創建了660個主題和2090 個包,其中linter、autocomplete-plus以及minimap等包已經擁有了自己的子社區。通過穩定的API、內置ES6支持、支持包 與包的通信、擴展編輯器核以及自適應UI等,Atom變得越來越模塊化,也能夠更好的支持用戶的二次開發。Atom編輯器的最大特點就是采用Web技術了 來構建應用程序。基于Chromium核心和Node.js,Atom就是一個Web頁面,具有通過Node.js訪問本地文件系統、執行第三方進程等功 能。其開源的組件包括了核心(Core)、包管理器APM(Atom Package Manager)以及Atom Shell三個部分。在不斷的更新過程中,為了能夠支持社區設計的autocomplete-plus等包,Atom團隊對這三個部分進行了不斷調整。目 前,Atom具有支持CSS、HTML、JavaScript等網頁編程語言、支持宏、能夠自動完成分屏功能、集成文件管理器等特點。而且,Atom為 OS X 10.8及以后的系統、Windows 7&8以及Ubuntu等操作系統都提供了源代碼及安裝包。Atom團隊還提供了擴展的API文檔、使用手冊以及針對初學者的教學視頻等。
Atom 1.0版本實現了 @defunkt 的初衷——開發者擁有編輯器完全的控制權,成為未來很多工作的基礎。但是,完全實現Atom項目所預想的目標很有很長的路要走。GitHub的工程師 Ben Ogle表示,Atom團隊未來會考慮進行改善用戶體驗、提升編輯器性能和穩定性、增加更多語言支持等方面的工作。