Atom 為什么選擇Atom?

2018-12-05 10:59 更新

為什么選擇Atom?

這個(gè)世界上有那么多種編輯器,為什么你要花時(shí)間學(xué)習(xí)和使用 Atom 呢?

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


我們覺(jué)得我們可以做得更好。我們的目標(biāo)是在保證易用性的同時(shí)提供充分的可拓展性(hackability):這個(gè)編輯器會(huì)受到第一天學(xué)習(xí)編程的新生歡迎,而且當(dāng)他們成長(zhǎng)為編程專(zhuān)家時(shí)也難以割舍。


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


Atom 的核心


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


混合本地代碼與 Web 技術(shù)

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


因此,我們沒(méi)有把 Atom 構(gòu)建為一個(gè)傳統(tǒng)的 Web 應(yīng)用,Atom 是一個(gè)專(zhuān)門(mén)被設(shè)計(jì)用作文本編輯器,而不是網(wǎng)頁(yè)瀏覽器的 Chromium 定制版。Atom 的每一個(gè)窗口實(shí)際上都是一個(gè)本地渲染的網(wǎng)頁(yè)。


所有來(lái)自 Node.js 可用的 API 在 Atom 窗口的 JavaScript 中同樣可用,這種結(jié)合帶來(lái)了一種獨(dú)一無(wú)二的開(kāi)發(fā)體驗(yàn)。


因?yàn)橐磺卸际潜镜氐?,你不需要將靜態(tài)資源打包、不需要關(guān)注腳本的異步加載,如果你希望加載一些代碼。只需要在文件的最頂部 require 它即可,Node.js 的模塊系統(tǒng)允許你將一個(gè)系統(tǒng)分割為小的、專(zhuān)注于某一功能的包。


JavaScript 與 C++ 的結(jié)合

與原生代碼交互也很簡(jiǎn)單。例如,你基于 Oniguruma 正則引擎開(kāi)發(fā)了一個(gè)用來(lái)提供對(duì) TextMate 語(yǔ)法識(shí)別的支持。在瀏覽器里,你可能需要使用 NaCl 或 Esprima, 而在 Node 里這個(gè)過(guò)程變得非常簡(jiǎn)單。


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


Web 技術(shù):最有趣的部分

另一個(gè)好消息就是當(dāng)你為 Atom 編寫(xiě)代碼時(shí),這些代碼一定會(huì)被允許在最新版本的 Chromium 中。這意味著你可以無(wú)視與瀏覽器兼容性有關(guān)的黑科技,使用全部的最新的 Web 功能。


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


我們確信將 Atom 構(gòu)建在 Web 技術(shù)之上是一個(gè)好的選擇,因?yàn)檎麄€(gè)行業(yè)都在推動(dòng)著 Web 技術(shù)的發(fā)展。原生UI技術(shù)不斷產(chǎn)生又不斷淘汰,而 Web 是一個(gè)每年都變得更加強(qiáng)大和普及的標(biāo)準(zhǔn)。我們對(duì)于深入探索這一強(qiáng)大的技術(shù)感到無(wú)比興奮。


一個(gè)開(kāi)源的文本編輯器

GitHub 的目標(biāo)是幫助大家構(gòu)建更好的軟件,而 Atom 則是實(shí)現(xiàn)這一目標(biāo)的重要補(bǔ)充。Atom 是一項(xiàng)長(zhǎng)期的投資,GitHub 會(huì)持續(xù)投入開(kāi)發(fā)力量來(lái)推動(dòng)它的發(fā)展。但我們也意識(shí)到不能讓它受限于我們的能力,就像之所以 Emacs 和 Vim 在過(guò)去的三十年間被廣泛使用,是因?yàn)橹挥虚_(kāi)源,才能構(gòu)建一個(gè)持久的、有活力的文本編輯器社區(qū)。


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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)