代碼編輯器橫評:為什麼 VS Code 能拔得頭籌?| 程序員硬核評測
作者 | 韓駿
責編 | 郭芮
2015 年 4 月 29 日的 Build 大會上,微軟發布了 Visual Studio Code 第一個預覽版本。短短四年時間裡,VS Code 高速成長。
根據 2019 年 2 月的 PYPL Top IDE index 排名,VS Code 漲勢迅猛,在所有編輯器與 IDE 中排名第六,領先於其他主流的代碼編輯器:Sublime、Atom 和 Vim。可以說是已經在代碼編輯器中拔得頭籌。
在 Stack Overflow 的 2018 年開發者調查中,VS Code 亦是最受歡迎的開發工具。
那麼,VS Code 為什麼能這麼成功?有哪些地方是開發者所喜愛的呢?讓我們從各個方面與 Sublime、Atom 和 Vim 比較下,逐一分析。
學習曲線
對於任何人來說,特別是新手,一個工具的學習曲線也會影響到它的受歡迎程度。還記得 Stack Overflow 上著名的問題之一:"How to exit the Vim editor?" 嗎?已經有接近兩百萬的訪問量了。在學習曲線上,VS Code、Sublime 和 Atom 一定是遙遙領先於 Vim。同時,VS Code 的使用文檔相比於其他編輯器也是做得最好的,無論是「快速入門」還是每一個功能的使用,在官網上都寫得一清二楚有條有理。官網還提供了 PDF 版的鍵盤快捷鍵參考表,讓開發者輕鬆上手。此外,考慮到一些開發者是從 Vim、Sublime、IntelliJ 或是其他開發工具轉來的,依舊習慣於原來開發工具的鍵盤快捷鍵。VS Code 也提供了各種鍵盤映射的插件,讓你可以在 VS Code 中繼續使用不同開發工具的快捷鍵,而不用重新學習 VS Code 的快捷鍵。
用戶體驗
VS Code 提供了許多良好的開箱即用的用戶體驗。與 Vim、Sublime 和 Atom 一樣,VS Code 都提供了代碼編輯的體驗。此外,VS Code 在保持其輕量級代碼編輯器的前提下,還內置了一些 IDE 中會有的重要功能:
- Terminal:內置的 Terminal 使得開發者可以直接在 VS Code 中快速地運行腳本,而不需要在 VS Code 和系統的 Terminal 之間來回切換。
- 調試器:直接在 VS Code 中調試代碼,斷點、Call stacks、互動式的 Debug Console,使調試變得異常輕鬆。
- 版本控制:開箱即用的 Git 支持,讓你方便地進行文件更改比較,管理你的源代碼。
特別是對於前端開發者來說,VS Code 有著非常好的支持。除了對 JavaScript 的智能提示、重構、調試等功能的支持,像 HTML、CSS、SCSS、Less 和 JSON 這些前端技術棧,都有著很棒的支持。
此前在一些用戶體驗上,VS Code 也有不足之處。比如,曾經 VS Code 設置頁面的體驗就沒有 Atom 好,Atom 有著圖形化的配置界面,而 VS Code 是基於 JSON 文件的。VS Code 對此也是聽取用戶的反饋,增加了圖形化的配置界面,也保留了基於 JSON 文件的配置方式,滿足了不同人群的使用習慣。
開源
開源對於一個產品的長期發展極為重要。在四款編輯器中,Sublime 是閉源的,VS Code、Vim 和 Atom 都是開源的,而 VS Code 可以說是開源做得最好的。
VS Code 不僅僅是把代碼開源出來。而是把整個產品的開發過程建立於開源之上,與整個社區深入合作,傾聽用戶在 GitHub 上的反饋,使 VS Code 越做越好:
- 每一年,VS Code 團隊都會在 GitHub Wiki 發布 Roadmap ,列出一整年的規劃圖;
- 每個月初,在產品設計階段,VS Code 團隊會在 GitHub Issue 上會發布 Iteration Plan ,列出這個月會做的每一個功能,每一個功能基本會對應一個 GitHub Issue,你可以看到詳細的設計以及 mockup,並且可以提出你自己的見解;
- 每個月末,臨近產品發布,你可以在 GitHub 看到 Endgame 了解到 VS Code 是如何進行產品測試與發布的。
不僅代碼開源,VS Code 整個產品的計劃,設計以及發布管理都是「開源」的:每一個階段對每一個用戶是公開透明的,你不僅可以開 Issue,發 PR,甚至也可以參與到每個功能的設計與討論中去。
性能
天下武功唯快不破。相信從 IDE 轉投 VS Code 的童鞋,一定是對 VS Code 的性能非常滿意。同為基於 Electron 開發的產品,VS Code 在性能的優化上要比 Atom 領先許多。當然,我們必須承認的是,在速度上 VS Code 與 Vim 和 Sublime 相比,還是略有差距。但是,我們依舊能看到 VS Code 不斷在性能上優化。從插件進程與主進程的隔離、插件的延遲載入,再到 Text Buffer 的優化,提升大文件的載入與編輯速度,減少內存使用率。我們看到了 VS Code 的不斷進步。
插件
VS Code 有著豐富且快速增長的插件生態,如今,已經有超過一萬個插件。不僅有中心化的插件市場,而且在 VS Code 編輯器里也可以輕鬆搜索插件,直接進行安裝與管理。相比之下,Sublime 只有 5000 不到的插件,而且在編輯器里不能很方便地搜索管理插件;Vim 插件雖多,但因為沒有一個中心化的插件市場,查找插件很麻煩;Atom 有 8000 多的插件,比 VS Code 少一些,雖然在編輯器內也可以查找插件,但 VS Code 的搜索和瀏覽功能做得要比 Atom 要好。
此外,VS Code 還推出了 Extension Packs,方便開發者一鍵安裝多個插件。比較出色的 Extension Pack 有 Java Extension Pack、PHP Extension Pack、Vue.js Extension Pack 等,使得 VS Code 秒變 IDE。
生態
VS Code 不僅僅是一個代碼編輯器,它有著強大的生態。VS Code 把它的許多重要組件抽離出來,成為大家都可以復用的開源產品,與社區合作,把產品越做越好:
- Language Server Protocol :它是 Editor/IDE 與語言伺服器之間的一種協議,可以讓不同的 Editor/IDE 方便嵌入各種程序語言,允許開發人員在最喜愛的工具中使用各種語言來撰寫程序。Eclipse、Atom、Sublime Text、Emacs 等主流 Editor/IDE 都已經支持了 LSP。
- Debug Adapter Protocol:DAP 與 LSP 的目的類似,DAP 把 Editor/IDE 與不同語言的 Debugger 解耦,極大地方便了 Editor/IDE 與其他 Debugger 的集成。Eclipse、Emacs、Vim 等已經支持了 DAP 。
- Monaco Editor:作為 VS Code 的核心組件,Monaco Editor 在 GitHub 已經擁有了超過 13000 個 star 。國內比較有名的比如 Cloud Studio 和 Gitee Web IDE 都使用了 Monaco Editor。
VS Code 作為 Visual Studio Family 的重要產品,與 Visual Studio IDE 一樣,也有兩大重要的功能:
- Visual Studio Live Share:極大地方便了協作編程:實時共享代碼編輯、跟隨游標、團隊調試、分享本地伺服器、共享終端等。
- Visual Studio IntelliCode:通過 AI 賦能,根據上下文給出編程建議和智能提示,提高開發者的效率。
VS Code 快四歲了,它還是個很年輕的編輯器。未來的路很長,相信它會越來越好,成為更多開發者所喜愛的開發工具。
作者:韓駿,微軟研發工程師,VS Code 代碼貢獻者,VS Code 及 IoT 領域專家。


※Facebook 洗白?欲打造以隱私為中心的社交平台!
※QQ 可註銷版本上線;拼多多成立技術顧問委員會;董明珠:建議偷手機判 10年
TAG:CSDN |