代码编辑器横评:为什么 VS Code 能拔得头筹
2015 年 4 月 29 日的 Build 大會(huì)上,微軟發(fā)布了 Visual Studio Code 第一個(gè)預(yù)覽版本。短短四年時(shí)間里,VS Code 高速成長(zhǎng)。
根據(jù) 2019 年 2 月的 PYPL Top IDE index 的排名,VS Code 的漲勢(shì)迅猛,在所有編輯器與 IDE 中排名第六,領(lǐng)先于其他主流的代碼編輯器:Sublime、Atom 和 Vim。可以說(shuō)是已經(jīng)在代碼編輯器中拔得頭籌。
在 Stack Overflow 的 2018 年開(kāi)發(fā)者調(diào)查中,VS Code 成為了最受歡迎的開(kāi)發(fā)工具。
那么,VS Code 為什么能這么成功?有哪些地方是開(kāi)發(fā)者所喜愛(ài)的呢?讓我們從各個(gè)方面與 Sublime、Atom 和 Vim 比較下,逐一分析。
學(xué)習(xí)曲線
對(duì)于任何人來(lái)說(shuō),特別是新手,一個(gè)工具的學(xué)習(xí)曲線也會(huì)影響到它的受歡迎程度。還記得 Stack Overflow 上著名的問(wèn)題之一:"How to exit the Vim editor?" 嗎?它已經(jīng)有接近兩百萬(wàn)的訪問(wèn)量。VS Code、Sublime 和 Atom 在學(xué)習(xí)曲線上,一定是遙遙領(lǐng)先于 Vim。同時(shí),VS Code 的使用文檔相比于其他編輯器也是做的最好的,無(wú)論是“快速入門”還是每一個(gè)功能的使用,在官網(wǎng)上都寫的一清二楚有條有理。官網(wǎng)還提供了 PDF 版的鍵盤快捷鍵參考表,讓開(kāi)發(fā)者輕松上手。此外,考慮到一些開(kāi)發(fā)者是從 Vim、Sublime、IntelliJ 或是其他開(kāi)發(fā)工具轉(zhuǎn)來(lái)的,依舊習(xí)慣于原來(lái)開(kāi)發(fā)工具的鍵盤快捷鍵。VS Code 也提供了各種鍵盤映射的插件,讓你可以在 VS Code 中繼續(xù)使用不同開(kāi)發(fā)工具的快捷鍵,而不用重新學(xué)習(xí) VS Code 的快捷鍵。
用戶體驗(yàn)
VS Code 提供了許多良好的開(kāi)箱即用的用戶體驗(yàn)。與 Vim、Sublime 和 Atom 一樣,VS Code 都提供了代碼編輯的體驗(yàn)。此外,VS Code 在保持其輕量級(jí)代碼編輯器的前提下,還內(nèi)置了一些 IDE 中會(huì)有的重要功能:
Terminal:內(nèi)置的 Terminal 使得開(kāi)發(fā)者可以直接在 VS Code 中快速地運(yùn)行腳本,而不需要在 VS Code 和系統(tǒng)的 Terminal 之間來(lái)回切換。
調(diào)試器:直接在 VS Code 中調(diào)試代碼,斷點(diǎn)、call stacks、交互式的 debug console,使得調(diào)試變得異常輕松。
版本控制:開(kāi)箱即用的 Git 支持,讓你方便地進(jìn)行文件更改比較,管理你的源代碼。
特別是對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō),VS Code 有著非常好的支持。除了對(duì) JavaScript 的智能提示、重構(gòu)、調(diào)試等功能的支持,像 HTML, CSS, SCSS, Less 和 JSON 這些前端技術(shù)棧,都有著很棒的支持。
曾經(jīng)在一些用戶體驗(yàn)上,VS Code 的用戶體驗(yàn)也有不足之處。比如,曾經(jīng) VS Code 的設(shè)置頁(yè)面的體驗(yàn)就沒(méi)有 Atom 好,Atom 有著圖形化的配置界面,而 VS Code 是基于 JSON 文件的。VS Code 對(duì)此也是聽(tīng)取用戶的反饋,增加了圖形化的配置界面,也保留了基于 JSON 文件的配置方式,滿足了不同人群的使用習(xí)慣。
開(kāi)源
開(kāi)源對(duì)于一個(gè)產(chǎn)品的長(zhǎng)期發(fā)展極為重要。在四款編輯器中,Sublime 是閉源的,VS Code、Vim 和 Atom 都是開(kāi)源的,而 VS Code 可以說(shuō)是開(kāi)源做的最好的。
VS Code 不僅僅是把代碼開(kāi)源出來(lái)。而是把整個(gè)產(chǎn)品的開(kāi)發(fā)過(guò)程建立于開(kāi)源之上,與整個(gè)社區(qū)深入合作,傾聽(tīng)用戶在 GitHub 上的反饋,使 VS Code 越做越好:
每一年,VS Code 團(tuán)隊(duì)都會(huì)在 GitHub Wiki 發(fā)布 Roadmap ,列出一整年的規(guī)劃圖。
每個(gè)月初,在產(chǎn)品設(shè)計(jì)階段,VS Code 團(tuán)隊(duì)會(huì)在 GitHub Issue 上會(huì)發(fā)布 Iteration Plan ,列出這個(gè)月會(huì)做的每一個(gè)功能,每一個(gè)功能基本會(huì)對(duì)應(yīng)一個(gè) GitHub Issue,你可以看到詳細(xì)的設(shè)計(jì)以及 mockup,并且可以提出你自己的見(jiàn)解。
每個(gè)月末,臨近產(chǎn)品發(fā)布,你可以在 GitHub 看到 Endgame 了解到 VS Code 是如何進(jìn)行產(chǎn)品測(cè)試與發(fā)布的。
不僅代碼開(kāi)源,VS Code 整個(gè)產(chǎn)品的計(jì)劃,設(shè)計(jì)以及發(fā)布管理都是“開(kāi)源”的:每一個(gè)階段對(duì)每一個(gè)用戶是公開(kāi)透明的,你不僅可以開(kāi) Issue,發(fā)PR,你甚至也可以參與到每個(gè)功能的設(shè)計(jì)與討論中去!
性能
天下武功唯快不破。相信從 IDE 轉(zhuǎn)投 VS Code 的童鞋,一定是對(duì) VS Code 的性能非常滿意。同為基于 Electron 開(kāi)發(fā)的產(chǎn)品,VS Code 在性能的優(yōu)化上要比 Atom 領(lǐng)先許多。當(dāng)然,我們必須承認(rèn)的是,在速度上 VS Code 與 Vim 和 Sublime 相比,還是有略微的差距。但是,我們依舊能看到 VS Code 不斷的在性能上的優(yōu)化。從插件進(jìn)程與主進(jìn)程的隔離、插件的延遲加載,再到 Text Buffer 的優(yōu)化,提升大文件的加載與編輯速度,減少內(nèi)存使用率。我們看到了 VS Code 的不斷進(jìn)步。
插件
VS Code 有著豐富且快速增長(zhǎng)的插件生態(tài),如今,已經(jīng)有超過(guò)一萬(wàn)個(gè)插件。不僅有中心化的插件市場(chǎng),而且在 VS Code 編輯器里也可以輕松搜索插件,直接進(jìn)行安裝與管理。相比之下,Sublime 只有 5000 不到的插件,而且在編輯器里不能很方便地搜索管理插件;Vim 插件雖多,但因?yàn)闆](méi)有一個(gè)中心化的插件市場(chǎng),查找插件很麻煩;Atom 有 8000 多的插件,比 VS Code 少一些,雖然在編輯器內(nèi)也是可以查找插件,但 VS Code 的搜索和瀏覽功能做的要比 Atom 要好。
此外,VS Code 還推出了 Extension Packs,方便開(kāi)發(fā)者一鍵安裝多個(gè)插件。比較出色的 Extension Pack 有 Java Extension Pack、PHP Extension Pack、Vue.js Extension Pack 等,使得 VS Code 秒變 IDE。
生態(tài)
VS Code 不僅僅是一個(gè)代碼編輯器,它有著強(qiáng)大的生態(tài)。VS Code 把它的許多重要組件抽離出來(lái),成為大家都可以復(fù)用的開(kāi)源產(chǎn)品,與社區(qū)合作,把產(chǎn)品越做越好:
Language Server Protocol :它是 Editor/IDE 與語(yǔ)言服務(wù)器之間的一種協(xié)議,可以讓不同的 Editor/IDE 方便嵌入各種程序語(yǔ)言,允許開(kāi)發(fā)人員在最喜愛(ài)的工具中使用各種語(yǔ)言來(lái)撰寫程序。Eclipse, Atom, Sublime Text, Emacs 等主流 Editor/IDE 都已經(jīng)支持了 LSP。
Debug Adapter Protocol :DAP 與 LSP 的目的類似,DAP 把 Editor/IDE 與 不同語(yǔ)言的 debugger 解耦,極大地方便了 Editor/IDE 與其他 Debugger 的集成。Eclipse, Emacs, Vim等已經(jīng)支持了 DAP 。
Monaco Editor :作為 VS Code 的核心組件,Monaco Editor 在 GitHub 已經(jīng)擁有了超過(guò)一萬(wàn)三千個(gè) star 。國(guó)內(nèi)比較有名的比如 Cloud Studio 和 Gitee Web IDE 都使用了 Monaco Editor。
VS Code 作為 Visual Studio Family 的重要產(chǎn)品,與 Visual Studio IDE 一樣,也有兩大重要的功能:
Visual Studio Live Share:極大地方便了協(xié)作編程:實(shí)時(shí)共享代碼編輯、跟隨光標(biāo)、團(tuán)隊(duì)調(diào)試、分享本地服務(wù)器、共享終端等等。
Visual Studio IntelliCode:通過(guò) AI 賦能,根據(jù)上下文給出編程建議和智能提示,提高開(kāi)發(fā)者的效率。
未來(lái)
VS Code 快四歲了,他還是個(gè)很年輕的編輯器。未來(lái)的路很長(zhǎng),相信他會(huì)越來(lái)越好,成為更多開(kāi)發(fā)者所喜愛(ài)的開(kāi)發(fā)工具。
總結(jié)
以上是生活随笔為你收集整理的代码编辑器横评:为什么 VS Code 能拔得头筹的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【DevOps进行时】C/S端界面自动化
- 下一篇: 利用Helm简化Kubernetes应用