Atom 為什么選擇Atom?

2018-12-05 10:59 更新

為什么選擇Atom?

這個世界上有那么多種編輯器,為什么你要花時間學習和使用 Atom 呢?

雖然 Sublime 和 TextMate 之類的編輯器已經(jīng)非常好用了,但擴展性有限。另一方面,Emacs和Vim提供了極大的靈活性,但它們不是很平易近人,只能使用特定的腳本語言進行定制。


我們覺得我們可以做得更好。我們的目標是在保證易用性的同時提供充分的可拓展性(hackability):這個編輯器會受到第一天學習編程的新生歡迎,而且當他們成長為編程專家時也難以割舍。


當我們使用 Atom 來開發(fā) Atom 的時候,隨著它的逐漸完善,我們愈發(fā)覺得已經(jīng)離不開它了。從表面上來看,Atom 是一個能滿足你的期待的,現(xiàn)代化的桌面文本編輯器,而在表面之下,這是一個值得你去一同完善的系統(tǒng)。


Atom 的核心


Web 技術雖然有其缺陷,但經(jīng)過二十年的發(fā)展,Web 已經(jīng)逐漸成長為了一個強大的具有活力的平臺。所以當我們計劃寫一個自用的可拓展的文本編輯器時,Web 技術顯然是一個好的選擇,但首先我們需要擺脫來自 Web 的限制。


混合本地代碼與 Web 技術

Web 瀏覽器很適合用來瀏覽網(wǎng)頁,但寫代碼是一種需要可靠的工具的專業(yè)活動。更重要的是,瀏覽器出于安全的考慮,嚴格限制了對本地系統(tǒng)的訪問,但對一個文本編輯器而言,不能向本地系統(tǒng)寫入文件是不可接受的。


因此,我們沒有把 Atom 構建為一個傳統(tǒng)的 Web 應用,Atom 是一個專門被設計用作文本編輯器,而不是網(wǎng)頁瀏覽器的 Chromium 定制版。Atom 的每一個窗口實際上都是一個本地渲染的網(wǎng)頁。


所有來自 Node.js 可用的 API 在 Atom 窗口的 JavaScript 中同樣可用,這種結合帶來了一種獨一無二的開發(fā)體驗。


因為一切都是本地的,你不需要將靜態(tài)資源打包、不需要關注腳本的異步加載,如果你希望加載一些代碼。只需要在文件的最頂部 require 它即可,Node.js 的模塊系統(tǒng)允許你將一個系統(tǒng)分割為小的、專注于某一功能的包。


JavaScript 與 C++ 的結合

與原生代碼交互也很簡單。例如,你基于 Oniguruma 正則引擎開發(fā)了一個用來提供對 TextMate 語法識別的支持。在瀏覽器里,你可能需要使用 NaCl 或 Esprima, 而在 Node 里這個過程變得非常簡單。


在 Node.js 的 API 之外,我們還提供了一些 API 例如使用系統(tǒng)的對話框、使用菜單欄和右鍵菜單、操縱窗口尺寸等等。


Web 技術:最有趣的部分

另一個好消息就是當你為 Atom 編寫代碼時,這些代碼一定會被允許在最新版本的 Chromium 中。這意味著你可以無視與瀏覽器兼容性有關的黑科技,使用全部的最新的 Web 功能。


例如,Atom 的工作區(qū)和窗格都是基于 flexbox 來進行布局的。這是一個新興的標準,自從我們開始使用它以來,經(jīng)歷了很多變化,但是只要它起作用,這些標準都不重要。


我們確信將 Atom 構建在 Web 技術之上是一個好的選擇,因為整個行業(yè)都在推動著 Web 技術的發(fā)展。原生UI技術不斷產(chǎn)生又不斷淘汰,而 Web 是一個每年都變得更加強大和普及的標準。我們對于深入探索這一強大的技術感到無比興奮。


一個開源的文本編輯器

GitHub 的目標是幫助大家構建更好的軟件,而 Atom 則是實現(xiàn)這一目標的重要補充。Atom 是一項長期的投資,GitHub 會持續(xù)投入開發(fā)力量來推動它的發(fā)展。但我們也意識到不能讓它受限于我們的能力,就像之所以 Emacs 和 Vim 在過去的三十年間被廣泛使用,是因為只有開源,才能構建一個持久的、有活力的文本編輯器社區(qū)。


整個 Atom 編輯器都是免費且開源的,你可以在 https://github.com/atom 這個組織下找到它。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號