- 原文地址:Why TypeScript Is Growing More Popular
- 原文做者:Mary Branscombe
- 译文出自:掘金翻译计划
- 译者:loveky
- 校对者:Aladdin-ADD Germxu
为什么 TypeScript 这么流行呢?许多主流的开发框架依赖于它,它还能提升开发者在不断变化的 JavaScript 世界中的生产力。javascript
在最近的 Stack Overflow 开发者调查以及年度 RedMonk 编程语言排名中都显示 TypeScript —— 由微软发起的结合了编译高级 JavaScript 特性与静态类型检查及工具的开源项目 —— 正在达到新的人气高度。经过为 JavaScript 提供最基本的检查语法,TypeScript 容许开发者对他们的代码进行类型检查,这能够暴露 bug 并改善大型 JavaScript 代码库的结构和文档)。前端
参与了 Stack Overflow 调查的开发者中有 9.5% 的人正在使用 TypeScript,这使得 TypeScript 成为了第九流行的编程语言,排名在 Ruby 以前,用户量是 Perl 的两倍。这次 Stack Overflow 调查中的受访者来自不一样领域,使用最普遍的两种语言是 JavaScript 和 SQL,这说明这次调查并不是只针对前端开发。事实上,TypeScript 程序员出如今了参与 Stack Overflow 调查的全部 4 种工做角色中:web 开发者、桌面开发者、系统管理员与 DevOps 以及数据科学家。vue
RedMonk 的排名将 Stack Overflow 的数据与 GitHub 上的 pull request 结合起来试图理解开发者的想法以及他们正在使用什么。TypeScript 一样受到了开发者的欢迎,排名从第 26 位上升到了第 17 位。其中一部分缘由是 TypeScript 在 Stack Overflow 上关注度的提高,但主要仍是由于在 GitHub 上参与的开发者在不断增多。java
的确,GitHub 在其 2016 年度总结中把 TypeScript 列为在 GitHub 上用于项目开发的 316 种编程语言中最受欢迎榜单的第 15 位(基于 pull request 的数量以及相较与前一年 pull request 250% 的增加率)。node
在另外一个针对开发者的调查中,TypeScript 在众多 JavaScript 的『替代』风格中拥有最高的使用率(21%)以及还没有的用户中最高的关注度(39%)。这项调查的方式不一样寻常 —— 它很奇怪地将转译器和包管理器(如 npm 和 Bower)混合在一块儿 —— 但参与了这项调查且常用 TypeScript 的开发者也常用 ECMAScript 2015、NativeScript、Angular,尤为是 Angular2。react
来自 RedMonk 的 Stephen O’Grady 指出『彷佛有理由相信 Angular』在 TypeScript 的日益普及中发挥了做用。虽然 Angular2 只是众多使用了 TypeScript 的项目中的一个(Asana 和 Dojo 已经在使用了,Adobe、Google、Palantir、SitePen 以及 eBay 的一些内部项目也是同样),但最为人们所熟知的恐怕仍是像 Rob Wormald 这样的 Google 员工在宣传 Angular 时顺带推广了 TypeScript。android
『毫无疑问,咱们与 Angular 团队的合做有助于 TypeScript 的推广』,TypeScript 核心成员 Anders Hejlsberg 向 New Stack 说到。『但即使如此,我认为真正重要的点在于这是一次表明了行业力量重大信心的信任投票。』webpack
他指出,这种信任投票带来的影响不只仅在于 Angular。『目前,许多其它框架也在使用 TypeScript。Aurelia、Ionic、NativeScript都以某种方式使用了 TypeScript。Ember 框架与 Glimmer 框架的最新发布版本就是使用 TypeScript 编写的。』ios
『咱们看到许多来自在这个行业经验丰富的人的信任投票。我想这多是每一个在大公司的人都会注意到的』—— Anders Hejlsberggit
这种信任投票也给框架的使用者带来了机会。『咱们作了不少努力以成为 React 生态中的重要一员。咱们支持 JSX,支持全部你在重构或是浏览 JSX 代码时想要用到的类型系统的高级特性。咱们还正在和 Vue.js 社区合做以更好的支持这个框架中用到的各类模式。』 Hejlsberg说到。
为新框架提供支持是在开发者中保持流行度的一项重要手段。『咱们一直都在关注框架领域。咱们知道这是一个不断变化的生态系统。它在不断变化,你必须时刻准备着并保证一切都能正常工做。』
对于工具链来讲也是如此,尤为是在 ECMAScript 模块愈发流行的状况下。『许多人使用模块编写现代风格的 JavaScript 应用,当你使用 ECMAScript 6 模块的时候,你须要使用一个相似 Webpack 或 Rollup.js 这样的打包工具将代码打包起来以便能在浏览器中运行。咱们要确保 TypeScript 能够与这些工具配合使用以保证咱们能够融入整个工具链之中』 Hejlsberg说到。
React 是由 Facebook 发起的库。Angular 是从 Google 衍生出来的框架。有不少分析把它们作了比较。总的来讲,Angular 处于领跑地位,与此同时 Vue.js 正在受到大量关注。Angular 在 TypeScript 的用户圈中受到追捧,41% 的人倾向于 2.x 版本,另外 18% 的人则更喜欢老版本。随着近期 Angular 4 的发布以及 TypeScript 的日益流行,咱们预计 JavaScript 的战争还将持续下去(Lawrence Hecht)。
拥有 TypeScript 类型定义的库的数量也在稳步增加。DefinitelyTyped,一个维护 TypeScript 类型定义的仓库,如今已经包含了超过 3000 个框架和库。经过把声明文件做为 npm 包发布在 @type 命名空间下,这个过程被大大提速了。
『这意味着如今有了一个能够预测哪些框架支持类型的方法 —— 咱们能够自动提供这些类型。当咱们发现你引用了某个特定的框架时,咱们就能够帮你找到类型定义,你就没必要亲自去寻找了。』事实上,Hejlsberg 声称:『对某些开发者来讲,某个框架是否拥有类型定义,已经成为了他们在选择框架时的决定性因素。』
『一般,TypeScript 被采用的流程 —— 不管是企业,创业团队仍是我的开发者 —— 是你在某个项目中尝试使用并发现它很棒,接着你就开始推荐给别人。就这样,它就在你的影响范围内传播开了。』—— Anders Hejlsberg
关注度的提升彷佛是用户增加的缘由之一。『咱们没作过任何推广,全部这些都是社区驱动的。其实是在稳步增加,咱们如今开始注意到增加速度更快了。』Hejlsberg 说道。
Hejlsberg 指出 TypeScript 仍是在 Stack Overflow 的调查中排在 Rust 和 Smalltalk 以后第三受欢迎的语言(排在 Swift 和 go 以前)以及第六急需人才的语言,排在 C# 和 Swift 以前。『我认为这从很大程度上说明咱们真的解决了实际问题』Hejlsberg 指出。
人们很容易把 TypeScript 的成功视为微软经过熟悉的工具把已经在微软世界中的企业开发者引入 JavaScript 的结果。
『咱们有一个围绕着 C#、C++ 以及 Visual Basic 的大型开发者生态系统。许多企业在使用微软的工具同时也有前端开发的需求,当咱们开始改善前端开发的时候,他们就坐下来,关注并开始使用了。』Hejlsberg坦言。
可是,虽然不少 TypeScript 的开发工做是在 Visual Studio 中进行的,和使用 Visual Studio Code —— 微软开源的,跨平台的 IDE —— 的同样多。『那是一个和咱们没有太多联系的社区。以 Visual Studio Code 来讲,一半的用户来自非 Windows 系统,所以忽然间咱们就与一个以前没什么交流的开发者社区创建了联系。』
TypeScript 团队最近宣布发布频率将由每季度改成每两个月,Heljsberg 呼吁让发布日期更加可预测,而不是为了添加某个新功能而延迟发布。这也正是 ECMAScript 委员会正在采起的作法。
新的发布节奏也会与 Visual Studio Code 保持一致,部分缘由是由于 Visual Studio Code 是由 TypeScript 开发的,但更重要的缘由在于工具是 TypeScript 吸引力的重要组成部分。
尽管 TypeScript 支持多种编辑器与 IDE 很重要,但 Hejlsberg 指出 Visual Studio Code 是另外一个帮助该语言普及的因素。
事实上,即使只是开发 JavaScript,你也能从 TypeScript 得到更好的编码特性,他解释道。『Visual Studio Code 和 Visual Studio 都使用 TypeScript 语言服务做为它们的 JavaScript 语言服务。因为 TypeScript 是 JavaScript 的超集,这意味着 JavaScript 是 TypeScript 的一个子集,它只是没有类型注释的 TypeScript 罢了。』他指出。
在 Visual Studio Code中,打开一个 JavaScript 文件会触发 TypeScript 的解析器、扫描器、词法分析器和类型分析器以提供 JavaScript 代码中的语句补全和代码导航功能。『即便没有类型注释,咱们也能够经过你使用的模块以及声明的类来推断出关于项目结构的不少信息』Hejlsberg 说道。『使人惊奇的是,咱们能够自动为你引用的框架导入类型信息,而后就能够为你提供出色的语句补全功能。』
使这样的快速发布节奏成为可能的是全部 pull request 被合并前必须经过测试,这保证了 master 分支的代码质量和 TypeScript 的流行,意味着任何问题均可以被快速发现。
『咱们是一个开源项目,咱们在 GitHub 上作了不少工做。除非能经过咱们现有的 55000 个测试,不然咱们毫不合并任何 pull request;若是是增长新功能,就必须提供相应的测试代码;若是是修改 bug,就必须提供回归测试。这意味着咱们的 master 分支始终保持着很高的代码质量。』他说道。
除了任何一个单一因素之外,驱使 TypeScript 愈发流行的真实缘由多是现现在 JavaScript 开发愈来愈高的复杂性以及愈来愈强大的能力。
『咱们的行业和 JavaScript 的使用都发生了巨大的变化。』 Hejlsberg指出。『之前咱们生活在一个同质的世界。全部人都使用 Windows 和浏览器,这就是你如何使用 JavaScript 的。如今世界已经变得很是多元化。有各类不一样的设备 —— 手机和平板电脑,还在后端使用 node 运行 JavaScript。JavaScript 还挣脱了浏览器,经过使用 NativeScript、React Native 或是 Cordova 你已经可使用 JavaScript 构建原生应用。』
『是的,它变得更复杂,但也有着无限多的能力。』 Hejlsberg 谈到 JavaScript 时说道。『利用 JavaScript,你可使用同一种语言和工具开发出如此多种类的应用。对我而言,这正是推进全部这一切的缘由:你能够开发不一样类型应用的多样性以及你能从这个不断进化的生态系统中得到的可重用性。它不只仅变得更复杂了,也更强大了。』
TNS 分析员 Lawrence Hecht 为此份报告的撰写提供了帮助。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、React、前端、后端、产品、设计 等领域,想要查看更多优质译文请持续关注 掘金翻译计划。