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 快四岁了,他还是个很年轻的编辑器。未来的路很长,相信他会越来越好,成为更多开发者所喜爱的开发工具。

confluence 编辑器这次没有加载_代码编辑器横评:为什么 VS Code 能拔得头筹相关推荐

  1. confluence 编辑器这次没有加载_喵的Unity游戏开发之路 - 多场景:场景加载

    如果丢失格式.图片或视频,请查看原文:喵的Unity游戏开发之路 - 多场景:场景加载 很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏 ...

  2. confluence 编辑器这次没有加载_推荐一款编辑器然后是R语言的相关性分析

    这个网站的主题越来越好了,markdown写作真的会上瘾,加上这么好的编辑器,真的是不要太爽喔! 「知乎,微信公众号编辑器推荐:」 https://mdnice.com/ 下面是正文,写这个主题是因为 ...

  3. confluence 编辑器这次没有加载_一个在线 lrc 歌词生成/编辑器

    前言 虽然有在用 React Native 做项目,但好像没有怎么用 React 做过除了官方 Demo 之外的东西,心里总有种本末倒置的不安违和感. 恰好最近迷上了给网易云音乐上传日语歌的歌词,在连 ...

  4. confluence 编辑器这次没有加载_介绍10款平时项目里使用比较多的在线编辑器,有需要可以收藏起来

    我这里只是收集一些常用在线编辑器,对编辑器的功能,性能,使用难易程度不做任何评测,因为每个人的使用习惯不一样,使用场景也不一样. UEditor (百度开发) UEditor 是一套开源的在线HTML ...

  5. confluence 编辑器这次没有加载_玩转爱普生打印机自带的任务编辑器Lite版

    爱普生打印机往往能给我们的日常使用带来惊喜,比如智能墨滴变换技术(带来更平滑更精细的图案输出).导电胶吸附纸粉(A4纸的纸粉往往是造成喷墨打印机喷头频繁堵塞断线的罪魁祸首).以及最近两年的微信打印方案 ...

  6. webplugin 没有画面_[问题记录] webpack devServer HtmlWebpackPlugin 没有加载 js、css

    webpack devServer 没有加载 js.css HtmlWebpackPlugin runtimeChunks 注入问题. 描述 写了一个极其简单的多页面 demo 启动开发服务器,发现样 ...

  7. 前端取消置顶功能_短说开发日报:首页推荐频道刷新后首页置顶的数据没有加载出来的问题已修复(9.22周二)...

    短说社区论坛系统是想天软件推出的一款集社区论坛.电商商城.知识付费三大版块为一体的整合运营系统 同步支持H5.公众号.安卓.IOS.PC.多渠道小程序(微信.头条.百度.支付宝.QQ) SAAS版本. ...

  8. CAD 启动无法加载配置文件,上次任务中保存的某些配置信 cass主框架程序没有加载

    Cad 启动报错 无法加载配置文件,上次任务中保存的某些配置信xxxxx 解决办法: 参考: https://knowledge.autodesk.com/zh-hans/support/autoca ...

  9. vue路由切换组件没有加载_vue-router 路由跳转后没有加载组件

    router.js 路由部分 export const normalRouter = { path: '/', meta: { login: false }, component: () => ...

最新文章

  1. 科研经费管理新规定——劳务费从15%变为上不封顶
  2. jQuery获取及设置单选框,多选框,文本框内容
  3. 模板库 | 销售管理类报表,邀您提反馈
  4. python123第6周答案_Python123测验6: 组合数据类型 (第6周)
  5. makefile--嵌套执行(四)
  6. 开源程序安装框架-BitNami
  7. Qt_我写过的bug
  8. 多元统计分析最短距离法_多元统计分析方法 -
  9. Rust语言教程(2) - 从熟悉的部分开始
  10. 安卓系统实现播放器变速功能
  11. 第九组 通信3班 063 防火墙配置
  12. 深度残差网络+自适应参数化ReLU激活函数:调参记录2
  13. js计算当月有几周并显示对应的日期
  14. 计算机组装和线路连接,计算机组装与局域网连接技术.ppt
  15. IDEA提示方法参数的快捷键
  16. chmod命令用法(linux中chmod命令用法)
  17. 鱼书P70--mnist.py的导入和应用
  18. 苹果几是双卡双待_有点不可思议,苹果iPhone 11:真的是支持双卡双待
  19. 〔转载〕从蓝色巨人到四海一家 IBM品牌塑造及转型
  20. 水星UD6S网卡Linux驱动,水星UD6S无线网卡驱动(修复水星UD6S无线网卡连接异常问题)V1.0 免费版...

热门文章

  1. Linux服务器上挂载window本地iso镜像文件的方法。
  2. HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之全然具体解释
  3. 压缩aspx页面,移除aspx多余的空格 供学习参考
  4. MFC 重设对话框的尺寸
  5. Bitcoin推特遭到清洗!发生了什么?
  6. 查看python安装的包
  7. java--迭代(一)Iterator和Iterable接口
  8. 用onerror处理图片获取失败问题
  9. Ubuntu Linux系统下apt-get命令详解
  10. flex 字体加载方式4