【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

为什么 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:129736
用户头像

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

关注

评论

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

高性能 PHP 应用容器之 Workerman

CRMEB

三、KVM管理工具

穿过生命散发芬芳

kvm 5月月更

解析数仓lazyagg查询重写优化规则

华为云开发者联盟

数据库

error: conflicting types for xxx in c

codists

c

对于编程思想和能力有重大提升的书有哪些?

宇宙之一粟

书单推荐 编程思想 5月月更

【LeetCode】检查句子中的数字是否递增Java题解

Albert

LeetCode 5月月更

架构实战营模块2课后作业

Geek_53787a

OpenMLDB 实时引擎性能测试报告

第四范式开发者社区

人工智能 机器学习 数据库 性能分析 特征平台

助力传统游戏转型GameFi,Web3Games推动游戏发展新航向

One Block Community

区块链 黑客马拉松 gamefi Web3.0

今天爬,明天没,天津市XX网 详情页加密逻辑拆解,文中关键字已经加密

梦想橡皮擦

5月月更

哈希能作弊吗?哈希竞猜游戏防作弊系统开发逻辑(稳定运营)

开发微hkkf5566

基于云服务MRS构建DolphinScheduler2调度系统

华为云开发者联盟

大数据 MRS 华为云 DolphinScheduler 调度处理

全链路压测(十四):生产全链路压测SOP

老张

性能测试 全链路压测 稳定性保障

带你认识String类

开发微hkkf5566

为什么人工智能需要可解释性?

博文视点Broadview

跨平台应用开发进阶(十七) :uni-app实现内嵌H5应用

No Silver Bullet

uni-app 5月月更 内嵌H5应用

JAVA什么是反射?

源字节1号

软件开发

什么是区块哈希?哈希趣投娱乐竞猜游戏开发逻辑(成熟源码)

开发微hkkf5566

GitOps自问自答

俞凡

最佳实践 研发效能 gitops

带你读顶会论文丨基于溯源图的APT攻击检测

华为云开发者联盟

安全

模块二,微信朋友圈架构

泋清

#架构实战营

使用 Provider 搞定 Flutter 的局部刷新

岛上码农

flutter ios 前端 安卓开发 5月月更

客观的聊一聊,裁员这件糟心事

互联网 职场 裁员

JAVA SPI机制

源字节1号

Crypto巨头们纷纷聚焦“Building platonic”,PlatoFarm会是解决方案吗?

西柚子

模块2作业

Geek_701557

[Day46]-[数组]-三数之和

方勇(gopher)

数组 双指针 LeetCode

云图说丨每个成功的业务系统离不开API网关(APIG)的保驾护航

华为云开发者联盟

云计算 华为云 API网关 业务系统 APIG

Windows编译环境介绍

Loken

音视频 5月月更

Sa-Token 单点登录 SSO模式二 URL重定向传播会话示例

Java 登录验证 SaToken

leetcode 153. Find Minimum in Rotated Sorted Array 寻找旋转排序数组中的最小值(中)

okokabcd

LeetCode 查找

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