开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

为什么 VS Code 会迅速占领 JavaScript 开发者社区

  • 2019-06-19
  • 本文字数:2537 字

    阅读完需:约 8 分钟

为什么VS Code会迅速占领JavaScript开发者社区

首先,为了避免与微软的 Visual Studio IDE 发生混淆,这里先说明一下,Visual Studio Code(也即 VS Code)是一款轻量级的编辑器,类似 Atom 或 Sublime Text。它的采用量节节攀升,迅速占领了开发者市场!


2015 年,微软推出了 VS Code 的第一个版本。在第二年的 Stack Overflow 开发环境调查报告中,它只有 7.2%的市场份额,位居第 13 位,与 Notepad++和 Visual Studio(它们两个都是 35.6%)以及 Sublime Text(31.0%)差了一大截。不过,一年之后,它爬到了第 5 位(24%)。到了 2018 年,市场份额攀升至 34.9%。2019 年的报告更是说明 VS Code 之前的增长趋势并非昙花一现,市场份额达到了 50.7%。


VS Code 已经成为 JavaScript 社区最受欢迎的编辑器。有人说:“在很长一段时间里,微软被认为是 JavaScript 生态系统里的一颗毒瘤,因为它的陈旧的浏览器总是碍手碍脚的。不过,在过去几年,微软在 TypeScript 和 VS Code 方面表现强劲,似乎是在极力弥补过去的错误”。


那么,是什么让 VS Code 在 JavaScript 开发者当中变得如此流行?

1. 开源和社区支持

与 Sublime Text 和 WebStorm 不一样,VS Code 是完全免费和开源的,类似 Atom 和 GitHub 的编辑器。它与 Atom 的关键区别在于微软真的想把它打造成一款开源的编辑器。VS Code 在 GitHub 上是一个排名非常靠前的开源项目,在 2018 年收到了 19000 次代码提交。微软内部团队与社区紧密合作,采用了敏捷和 DevOps 开发方式,所以他们可以更快地发布版本和更快地改进产品。另外,为了确保交付给用户的是用户想要的东西,开发团队会收集产品使用信息以及来自 GitHub 和 UserVoice 的用户反馈。


在细分市场中,插件生态系统对代码编辑器来说是至关重要的。微软很快就意识到了这一点,所以,它不仅自己发布了很多插件,还让第三方插件开发变得很容易。因为 VS Code 是使用 JavaScript 开发的,并且是基于 Electron 框架的,所以开发 VS Code 插件非常容易。所以,VS Code 拥有很多高质量的插件。


当然,因为微软很擅长市场营销和软件销售,这一点在 VS Code 推广方面也起到了很大作用。

2. 跨平台能力

现如今,跨平台开发能力是非常重要的。2019 年 Stack Overflow 开发者调查显示,有 45.3%专业开发者使用 Windows,有 29.2%使用 macOS,还有 25.3%使用 Linux。因为 VS Code 是基于 Electron(一个跨平台框架)的,所以微软才能毫不费力地在这三个平台上发行 VS Code。

3. 同时支持 JavaScript 和 TypeScript

VS Code 是一款开箱即用的编辑器,几乎不需要做什么配置。它提供了各种非常受欢迎的特性,(比如与 GitHub 的集成),而且对 JavaScript 和 TypeScript 的支持非常好。另外,它还内建了 JavaScript IntelliSense、调试、格式化、代码导航和重构等功能。

IntelliSense

IntelliSense 可用于显示很多有用的信息,分析后台都发生了些什么,这样用户就可以借助类型推断、JSDoc 注解或者 TypeScript 类型声明文件更好地理解代码。


VS Code 提供了代码补全、显示参数信息、引用搜索等功能。还有一些插件提供了其他语言的 IntelliSense 特性。


调试

VS Code 支持原生 JavaScript、TypeScript 和 Node.js 调试。用户可以设置断点、检查对象信息和调用栈,以及在调试控制台执行代码。它还提供了一个运行按钮,按下这个按钮就可以运行代码,这些都是很多其他文本编辑器所没有的。


在开发客户端应用程序时,用户还可以借助 Chrome、Firefox 和 Edge 插件直接在 VS Code 调试控制台显示浏览器的调试信息。


4. 其他非常方便的特性

集成终端

在开发 Node.js 应用程序时,通常需要打开一个终端窗口。也就是说,除非你有两个显示器,否则就需要不断地在编辑器和终端窗口之间来回切换。为了能同时看到编辑器和终端窗口,你需要缩小编辑器窗口,导致屏幕上可显示的代码列数少了一些。


VS Code 提供了集成终端,用户可以打开多个终端,并自由自在地在多个终端间切换。你还可以将两个终端并列显示,这样就可以同时看到两个终端。


实时代码协作

Live Share 插件可以让你像使用 Google Docs 那样进行实时代码协作。它可以通过一键进行安装,集成了声音和文本聊天功能,而且完全免费。


要开始一次会话,只需要把链接发给其他人,这样他们就可以访问你的工作空间。每一个处于会话中的成员都可以进行独立的调试,并共享终端实例。


如果你对这个功能感到很好奇,可以看看这里https://vscodecandothat.com/,它提供了更多相关信息。

5. 性能

VS Code 提供了 IDE 风格的功能,但它实际上是一款非常轻量级的代码编辑器。它提供了这么多原生功能和插件,但它的速度仍然很快,不像其他 IDE——比如 NetBeans、Eclipse、Visual Studio 或者 Android Studio——这些 IDE 膨胀得很快,有时候会吃掉你所有的内存。


不过,有一点需要注意,尽管 VS Code 非常稳定,响应也很快,但它并不是最快的。在处理大文件或搜索大代码库时,它的速度不如 Vim 和 Sublime Text。但因为它在其他方面具有良好的性能表现,并提供了跨平台能力和很多非常有趣的功能,这个小问题就显得不那么重要了。

结论

VS Code 的流行并非偶然。内置源码控制管理、集成终端、调试工具,并支持 JavaScript IntelliSense,这些都让这款编辑器成为 JavaScript 开发者的开发利器。在过去几年中,微软花了很大力气解决 Web 开发方面的问题,特别是提供对 JavaScript 的支持,这让 VS Code 吸引了越来越多的用户,从而让 VS Code 的发展处在一个良性循环中。


不过也有一些不足的地方需要注意。对于那些认为 VS Code 功能过剩的人来说,Atom 或许是更好的选择。Atom 使用起来非常简单,如果要添加功能,也有很多插件可用。另外,正如之前提到的那样,如果你要快速处理大文件,请考虑使用 Vim 或 Sublime Text。


我们已经看到,VS Code 已经被 JavaScript 社区广泛采用,但其实也可以用它来开发其他语言。不过,它的普及主要受限于它没有提供足够多可与全功能 IDE(如 PyCharm、Eclipse)相媲美的东西。这些全功能 IDE 专门针对某些编程语言,并经过多年的改进和优化。那些数据科学家可能更偏爱 Spyder 或者 Pycharm。


但不管怎样,得益于广大的社区和微软在开源方面的投入,VS Code 的流行程度在未来几年仍然会继续……


英文原文:https://www.welcometothejungle.co/en/articles/vs-code-javascript


2019-06-19 18:1210036
用户头像

发布了 731 篇内容, 共 456.1 次阅读, 收获喜欢 2003 次。

关注

评论

发布
暂无评论
发现更多内容

AngularJS进阶(三十三)书海拾贝之简介AngularJS中使用factory和service的方法

No Silver Bullet

service AngularJS 12月月更 factory

美团四面:如何保障 MySQL 和 Redis 的数据一致性?

Java永远的神

Java MySQL 数据库 redis 后端

泰山众筹NFT版系统开发合约部署

薇電13242772558

智能合约

大数据培训出来后就业好吗?

小谷哥

IT机构哪家Java培训比较好

小谷哥

极客时间运维进阶训练营第七周作业

好吃不贵

软硬协同:基于倚天的视频云编码性能升级

阿里云CloudImagine

云计算 视频云

百度爱番番基于图技术、流式计算的实时CDP建设实践

NebulaGraph

数据库 flink 流计算 图数据库

揭秘倚天实例背后的硬核实力

阿里技术

云计算 云原生

ZBC登录iZUMi Finance双挖池APY高达189%,极致通缩的典范

股市老人

前端培训学习后程序员的就业前景怎么样?

小谷哥

大数据培训前景怎样

小谷哥

南京哪个java培训机构好?

小谷哥

读书破万“卷”,《软件研发效能度量规范》的先进认知与开源实现

思码逸研发效能

研发效能 效能度量

数据库日常实操优质文章分享(含Oracle、MySQL等) | 11月刊

墨天轮

MySQL 数据库 oracle 性能优化 SQL语句

随机方法性能差异

FunTester

【DBA100人】网联客CEO隋海峰:把握好职业生涯最重要的两个5年

OceanBase 数据库

数据库 oceanbase

AngularJS进阶(三十四)Angular数据更新不及时问题探讨

No Silver Bullet

angular 数据更新 12月月更

用友降运维成本实践:OceanBase替换MySQL,实现高可用

OceanBase 数据库

数据库 oceanbase

Redis缓存雪崩、击穿、穿透、双写一致性、并发竞争、热点key重建优化、BigKey的优化 等解决方案

C++后台开发

redis 中间件 后端开发 C++开发 redis缓存

StarRocks技术内幕 | 打造一款强大成熟的数据库有多难?

StarRocks

数据库·

模块一 实战营作业

peter

「架构实战营」

AngularJS进阶(三十二)书海拾贝之特殊的ng-src和ng-href

No Silver Bullet

AngularJS 12月月更 启动过程

chatGPT辣么火,你却不会注册!

程序员小毕

Java 程序员 程序员人生 后端 摸鱼

KCL v0.4.4 发布!自定义 YAML Manifests 输出以及 Python SDK!

Peefy

编程语言 Configuration Kubernetes Serverless #DevOps

鹅厂28K程序员,不会微服务,一周就被优化了?

小小怪下士

Java 程序员 面试 微服务

全面上新!阿里2023版(Java岗)面试突击手册,Github已标星37K

Java永远的神

程序员 架构 程序人生 后端 java面试

PCB制造常用的13种测试方法,你掌握了几种?

华秋PCB

测试 PCB PCB设计

已帮助数万程序员找到工作的阿里巴巴面试参考指南到底有什么魅力?

Java全栈架构师

程序员 程序人生 后端 java面试 八股文

ClickHouse在自助行为分析场景的实践应用

转转技术团队

Clickhouse MPP 大数据分析 OLAP 场景实践

为什么VS Code会迅速占领JavaScript开发者社区_语言 & 开发_Pierre Mary_InfoQ精选文章