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 已經擁有了超過一萬三千個 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」微信公眾號二維碼

推薦閱讀:
相关文章