Atom 體驗報告:21 世紀的可編程編輯器

回想起來,大概是去年這個時候,Github 宣佈開始開發 Atom, 當時 V2EX 上處處都有人在求邀請碼。由於 Github 並無嚴格地限制下載和使用,因此雖然我當時沒有邀請碼,但也試用了一下 Atom. 當時的感受是性能很是差,Bug 很是多,很是難用,因而就放下了。git

後來 2014 年底,大概是據說 Atom 要發佈 1.0 版本了(雖然到如今仍未發佈),因而又下載試用了一個月左右,發現已經不多遇到 Bug 了,因而完全從 WebStorm 遷移到了 Atom, 後來幾個月變成了 Atom 的腦殘粉。github

喜歡 Atom 並非由於它已經有多麼好用了,直到如今 Atom 也仍然存在不少問題,我更看好的是 Atom 的設計理念和它將來的發展。Atom 但願兼具易用性和可編程性,它但願既能夠對第一天學習編程的學生展示出易用性,又能夠對一個代碼大師展示出強大的可編程性。shell

Atom 的第一個特色是它構建於 Web 技術之上,最近幾年 Web 技術已經發展成了一種新的「操做系統」,具備一套完整的 API 來加速應用的開發,幾乎顛覆了傳統的應用開發模式。Atom 構建於 Chromium 和 Node.js 之上,Chromium 是最流行的瀏覽器之一,藉助 Web 技術能夠直接經過 HTML 來佈局,用 CSS 來影響界面的樣式,由於 Atom 使用內建的 Web 引擎,因此能夠直接使用新的 Web 技術,沒必要顧及瀏覽器兼容性等瑣碎細節。Node.js 則賦予了 JavaScript 使用 C++ 拓展、完整地訪問網絡和文件系統的能力,而且能夠直接使用 NPM 上已有的豐富資源。數據庫

Atom 的第二個特色是它使用了一種徹底插件化的設計,Atom 的核心僅僅是一個管理插件的框架(核心僅 15000 行代碼),任何「有意義」的功能都被以插件的形式實現,實際上 Atom 內置了大概 70 個插件來實現諸如文件列表、設置面板、命令面板、查找替換之類的基本功能。做爲一個通用的編輯器,不太可能直接面面俱到地考慮到各類需求,索性不如經過完全地插件化來適應各類不一樣類型的開發任務。Atom 鼓勵用戶經過編程的方式去進行定製, Atom 具備設計良好的 API, 還有一份 很是美觀的文檔 被擺在了官網的顯著位置。編程

最近一年我寫 JavaScript 比較多,我發現對於 JavaScript 這種動態類型、動態做用域的語言,WebStorm 基於靜態分析的自動補全費力不討好,並不能準確地進行提示,索性不如直接用字符串模糊匹配的方式來進行自動補全,畢竟對於我這種重量級用戶來講,是很清楚某個對象具備哪些屬性的,補全只是爲了加速。api

和 Sublime Text 相比,Atom 的性能確實差了一截,大概和 WebStorm 差很少的樣子。我以爲 Atom 在性能上仍是有一些提高空間的,目前的卡頓主要是由於 JavaScript 是單線程的,遇到密集計算就會阻塞事件循環,至於解決方案天然就是把密集計算和 DOM 操做 分離成兩個線程,但大概這項工做須要插件的開發者一同來配合,因此比較難以開展吧。瀏覽器

由於 Atom 以插件爲中心,因此我也很差說它能作什麼、不能作什麼,總之目前 Atom 已經能夠知足個人全部需求,Atom.io 爲每一個用戶提供了一個用戶頁, 各位能夠 在這裏看到我使用的插件。在將來我但願 Atom 社區能出現更多好用的插件,將與開發相關的功能都集成進來,例如一個好用的終端、斷點調試器、數據庫查看器等等,我最近也在嘗試本身編寫插件,不過目前還沒什麼成果。網絡

https://jysperm.me/2015/04/atom-getting-started/框架

相關文章
相關標籤/搜索