typescript扩展操作-摆脱 JavaScript,TypeScript 成为新宠

2023-08-26 0 7,758 百度已收录

这些言论有些是事实,有些是我的观点。 例如,我可能会显示一个图表,其中的数据表明您最喜欢的技术正在逐渐衰退。 请不要对此感到惊讶,因为这只是事实的讨论。 你可以批评我的观点,也可以对我的观点感到惊讶,但我不是 npm 之外的技术利益相关者,而且我列出的事实没有偏见。

当我提到“最受欢迎”和“最受欢迎”等叙述时,我并不是说它是“最好的”。 这两个含义不同,不能等同。 最流行的技术不一定是最好的技术,我也不知道如何定义“最好”和“最好”。 但对于技术来说,拥有很多用户本身就是一个优势:如果很多人使用你的技术,那么就会有很多人发现并修复它的 bug,写很多教程,并且有很多人在 Stack Overflow 上回答问题等。 流行的工具通常会让您的工作变得更轻松。

JavaScript 开发者肖像

我们是谁? 事实上,我们 JavaScript 开发人员和其他人没有什么不同。 如果你看一下统计数据,你会发现我们在年龄分布、地域分布、工具和配置文件方面与其他软件开发人员相似。 因为虽然JavaScript开发者是软件开发行业的主流群体。

如今,全球有 1100 万 JavaScript 开发人员,他们使用的开源软件比任何其他语言社区都多。 npm 存储库是当今最大的开源存储库,几乎在每个指标上都是排名第二的存储库的两倍以上。 所有其他存储库加上 add 都没有 npm 那么大。

在GitHub上,JavaScript的代码行数等指标是所有语言中最多的,并且这个位置已经保持了三年。

Stack Overflow 对 8 万人的调查还显示,JavaScript 是最流行的编程语言,68% 的开发者使用 JavaScript。 JavaScript 开发者的数量也是过去所有语言中最多的。 事实证明:

JavaScript 是当今世界上最流行的编程语言,也是有史以来最流行的编程语言。

随着 JavaScript 的不断发展,我们也看到了 JavaScript 社区的变化。 根据过去两年的 npm 调查,我们发现 JavaScript 开发人员的经验越来越丰富typescript扩展操作,编写 JavaScript 代码的时间也越来越长。 以npm的使用情况为例,近两年,npm用户中“新人”(使用2年以上)的比例不断增加,老手的比例不断减少。

此外,2014 年,许多 npm 用户都是 JavaScript 老手。 当时,JavaScript 开发者的数量远高于 npm 用户的数量; 而且现在99%的JavaScript开发者都在使用npm,新手在学习JavaScript的时候也会开始使用npm。 换句话说,npm 的用户数据现在相当于 JavaScript 开发者的总数。

随着 JavaScript 开发者社区的不断扩大,JavaScript 社区的焦点也在不断扩大。 根据去年的 npm 分析数据,JavaScript 老手更注重良好实践; 他们做了更多的测试,使用更多的 linter 和包,更加关注安全性等等。整个社区正在成熟,开发人员正在更加关注这些事情。

一年来,越来越多的开发者开始关注开源模块的安全风险。 npm 还删除了一些验证和指标来保护发布者帐户并标记恶意包。 但恶意软件包并不是最常见的威胁,各种意想不到的漏洞更为常见。 因此npm去年推出了npmaudit命令,通过升级包版本来查找和修复应用程序中的安全漏洞。 仅在过去一个月,npm 就执行了 3.35 亿次安全检查。 不过,与安全问题相比,大家更关注的是性能问题,是后者的三倍。

另外,令人惊奇的是,成熟的 JavaScript 开发人员更加关注他们所使用的软件的许可证,而我个人并不关心这一点。 58% 的开发人员表示,软件许可证是他们考虑开源软件的原因之一,其中 55% 的开发人员表示,他们的公司严格禁止他们使用某种许可证。

哪些许可证不受欢迎? 其中有GPL和AGPL,但更多的公司会严格禁止员工使用许可证不明的开源软件; 因为如果公司想要担心许可证的法律问题,他们就必须聘请法律顾问。 更多,所以如果你想开源你的软件,请将许可证放在显眼的位置,然后选择一个你熟悉的许可证。

虽然 JavaScript 是 2019 年最流行的编程语言,但四分之一的开发人员并不将其用作主要语言。 换句话说,他们只使用 JavaScript,因为它太流行了,所以他们不得不这样做。 在这部分开发者社区中,他们最常用的主要语言包括TypeScript、Python、Java等。

另一方面,值得注意的是,12% 的 JavaScript 开发人员只使用这一种语言,而不使用其他语言。

JavaScript 都用在什么地方呢?

我们要在哪里编写 JavaScript 代码? 答案几乎存在于您能想到的所有领域。 首先我们看一下你在JSConf上谈到的后端和前端的流行度指标: 可以看出,多年来这两个领域的流行度保持不相上下,但后端的流行度占据了上风最近几年。

97% 的 JavaScript 开发人员正在为浏览器编写 JavaScript 代码,77% 的开发人员正在为服务器编写 JavaScript。 可见Node.js仍然是社区的主流解决方案。 这里还有两个惊喜:一是 46% 的开发者正在用 JavaScript 编写本机应用程序 - 我不是在谈论渐进式 Web 应用程序,或者是设备主屏幕上简化的小部件的 Web 应用程序,但它是一台严肃的本机 PC或手机应用程序; 另有13%的开发者正在编写嵌入式应用程序,用于可穿戴设备、智能家电等领域。

下面让我们深入探讨一些细节。

第一个问题,当开发者为浏览器编写应用程序时,目标是移动设备还是桌面设备? 答案是,绝大多数人都会同时拥有这两个平台; 虽然很多人都喊着联通优先等口号,但毕竟只有2%的开发者只为联通平台开发Web应用; 与 27% 相比,大多数开发人员根本不考虑移动设备typescript扩展操作,这是可以理解的——因为有许多 Web 应用程序可能永远不会在手机上运行。

我们来看一下原生应用的情况。 46% 的 JavaScript 开发人员正在编写本机应用程序,其中移动设备处于领先地位 — 35% 的开发人员正在编写本机移动应用程序,26% 的开发人员正在编写本机桌面应用程序。

但是我们使用什么工具来编写本机应用程序呢? 这里面就存在一个问题。 我们都知道用 JavaScript 编写桌面应用程序主要使用 Electron,但是 26% 的开发者编写原生桌面应用程序,但只有 21% 使用 Electron。 换句话说,5% 的开发人员正在使用其他工具来编写本机桌面应用程序,那么他们使用的是哪些工具呢? 我想不通! 而且,Electron过去的使用率仍然是24%,表明人们对它的兴趣还在下降。

我们再看一下温度计。 数据显示,2017年后Electron的热度迅速下滑,到底发生了什么? 我更困惑了。

这是移动开发人员的案例。 我设法检测了一系列框架的流行程度,但我不会详细介绍如何检测。 绿线是所有原生框架的总流行度。 可以看到,原生开发仍然很流行,但相关框架却越来越碎片化。 最流行的框架是 React Native,其次是 Cordova - 它曾经是唯一的选择,但现在不那么流行了。 据数据计算,约有 19% 的开发者使用 React Native,Cordova 总计约 35%。

最后我们看一下服务器端应用的现状。 我们在哪里部署 JavaScript? 不出所料,Docker 和 Kubernetes 继续占据舞台,它们是我们部署 JavaScript 的主要目标; Heroku 和 Netlify 等平台也表现良好; 令人惊讶的是,虚拟机并不像我们想象的那么流行。 此外,有三分之一的开发者选择了Serverless部署,这表明Serverless不再是一项新兴技术,毫无疑问已经成为主流解决方案。

看温度计。 我选择了 Serverless、微服务和 Docker 来进行比较。 Docker 自 2015 年开始流行,但最近它的流行度开始减退; Serverless 的受欢迎程度仍在快速上升。

我们使用什么工具?

在进入这个主题之前,首先我想介绍一个名为“npm 存储库共享”的指标。 这个指标非常有用,但是也很容易引起误解,所以我先详细解释一下。

上面是 npm 存储库每周下载量的图表。 现在,我们每周的下载量为 120 亿次,下降了 250 倍。 从下载量来看,所有内容的受欢迎程度都在上升。 例如,下面流行的后端框架的下载图表显示,它们的绝对增长速度非常快。 即使是最小的软件包也在不断吸引新的用户,因为很多人一开始面对如此大的库时不知道从哪里开始,所以只是挑选并下载一些小众软件包。

绝对的下载量是行不通的,所以我们使用不同软件的相对份额来判断其受欢迎程度,就像 JSConf 温度计,也称为“npm 库份额”指标。 这样就很清楚发生了什么——有些技术正在下降,有些技术持平,有些技术正在下降,等等。但这里要记住一件事,份额的增加并不意味着绝对流行度的下降,它只是说明它的发展速度没有那么快。 这张图表上的稳定意味着下降250倍,份额减少意味着增长超过250倍,反之亦然。

我们来谈谈这个框架。 2019年后端框架领域总结很简单,那就是React占据了主导地位。 React 的下载量是排名第二的框架的四倍多,比以往任何时候都更受欢迎。 部分原因是React不仅仅是一个后端框架,事实上它不是一个后端框架; React 只是一个组件模型,可以在 Web 应用程序、React Native 应用程序和桌面应用程序中使用。

我们来看看开发商的现场监理情况。 根据我们的调查,63% 的 JavaScript 开发人员表示他们正在使用 React。 但“使用”这个词还是有点模糊,所以我们更进一步,问了一些具体的问题。 57% 的开发人员编写自己的 React 代码,6% 使用其他人编写的代码。 请注意,剩下的开发人员中有 15% 表示他们正在考虑使用 React。 因此,即使 React 现在如此流行,它仍然有一些潜在的缺点。 不过,从npm库份额来看,React的增速已经放缓,未来如何发展还有待观察。

进一步挖掘,在 57% 编写自己的 React 的开发人员中,49%(或所有开发人员的 28%)使用 React 作为他们的主要工具。 计算“有时使用”React 的其他开发人员意味着几乎一半的 JavaScript 开发人员经常使用 React。

谈谈其他框架。 去年,当我将 Angular 的版本 1 和版本 2 误认为是同一框架的两个版本时,我自己就陷入了尴尬,结果被纠正为它们根本不是同一件事。 第一个版本的 Angular 现在更名为 AngularJS,而且新版本的 Angular 和旧版本是两个不同的东西,这确实令人困惑。

typescript扩展操作-摆脱 JavaScript,TypeScript 成为新宠

AngularJS 库份额自 2016 年以来仍在下降,Angular 新版本自 2017 年以来也在下降。但请记住,这只是相对份额。 从绝对值来看,它们都在高速下降,并且赢得了大量的新用户。

Angular 总体上非常受欢迎,37% 的 npm 用户表示他们使用 Angular,20% 使用 AngularJS,29% 使用更新版本。 这意味着 Angular 的总用户至少有 300 万。

另一个框架是 Vue,它是除了 React 之外唯一一个高速下降的框架。 其图书馆份额在过去两年翻了一番,绝对下载量下降了10倍以上。 我们的调查数据还显示,如今有 27% 的用户在使用 Vue,用户规模正在接近 Angular。

然后从温度计看几个框架的情况。 2009 年,大家都在讨论 Dojo 和 jQuery,但现在几乎没有人提及; Angular 的流行度在 2015 年之后就消退了; React 仍在下降,这与库共享数据一致。

上面没有提到的一项是 Web 组件。 由于 Web 组件位于浏览器外部,因此没有人去 npm 下载它们,因此我们无法跟踪其使用数据。 此外,尽管 Web 组件并不是很流行,但 JavaScript 现状调查报告显示,只有不到百分之一的开发人员在使用 Web 组件。 我并不是要否定 Web 组件,Web 组件的用户告诉我它实际上比我担心的要流行得多,但这是吹牛。

说完后端框架,就该说说前端的故事了。

后端框架已经经历了一场革命。 以前我们讨论前端框架时,主要讨论Sales、Amber、Happy等话题; 这些框架仍然存在并稳定增长。 但现在大家都在编写丰富的后端应用,上面提到的静态框架早已无法满足新的需求。

于是乎,前端框架的爱好者们意识到需要使用预渲染HTML来提高性能,于是给这些解决方案起了一个响亮的名字“服务器端渲染(SSR)”。 然后你发明了一些轮子(服务器、路由等)来解决这个需求,也就是说你重新发明了一堆前端轮子,让开发者可以使用熟悉的框架来构建一个完整的服务器。

不知道大家怎么看待这件事。 对我来说,我喜欢将组件推入现有框架的想法,而忘记服务、解析等令人头痛的事情,很棒的想法——但是这个想法很熟悉,不是 PHP 吗? 如果在接下来的三天内有人告诉我可以通过 FTP 将我的 React 组件传输到服务器上,那么这将是一个完整的循环!

但要注意的是,如今这些 SSR 框架的份额仍然很小。 拿快递来对比一下。 Express 本身一度抢占了 1.5% 的 npm 库份额,而且目前仍然占有很大的份额。 相比之下,其他帧都是与图底部的水平线进行比较。

当我们去掉 Express 并查看剩下的小部分时,可以发现很多有趣的事情。 其中最受欢迎的是 Gatsby,它使用 React 并提供了一整套工具将其连接到前端部署。 请注意,今天有 8% 的开发者在使用 Gatsby,相比之下,上面提到的 Amber 和 Happy 的使用率都在 4% 左右,远低于今天的 Gatsby。 盖茨比的影响力已经相当大了,而且正在迅速下降。

下面三个框架的名字太相似了。 首先是NextJavaScript,使用率达到9%,大家都很看重; 然后是 NuxtJavaScript,它与 NextJavaScript 非常相似,但前者使用 Vue; 最后是NestJavaScript,它使用Angular,使用率应该是2%,有一个健康的增长速度。

typescript扩展操作-摆脱 JavaScript,TypeScript 成为新宠

高温计数据怎么样? 这会很困难。 “Next”这个词太常见了,以至于人们在使用它时通常不会提及这个框架; “Nest”这个词的意思是嵌套,它通常不是指 NestJavaScript 框架。 所以温度计只能看这些年直线上升的盖茨比!

GraphQL 与当今那些扮演前端框架角色的后端框架密切相关,它是一种构建 API 来支持此类内容的新方式。 它很受欢迎。 可以看到,GraphQL 的核心库和两个最受欢迎的客户端都在快速下降,调查数据也证实了这些趋势。 22% 的受访者正在使用 GraphQL,49% 的受访者表示他们正在考虑使用它。 这个数字已经足够大了,2019 年肯定会是 GraphQL 的元年。

最后一组趋势数据是关于“逃离 JavaScript”的趋势。 如上所述,一些开发人员不使用 JavaScript 作为主要语言,尤其是那些使用 Java、C# 和 C++ 等类型化语言的开发人员。 目前在这些趋势中占据主导地位的是 TypeScript,去年有 46% 的受访者使用 TypeScript,而今年这一数字大幅下降至 63%。

“使用”是什么意思? 事实上,15% 的开发人员只用 TypeScript 编写东西,这主要是因为 Angular(Angular 是用 TypeScript 编写的),因此 Angular 用户手动相当于 TypeScript 用户。 事实上,React 和 Amber 也有 TypeScript,只是 Vue 与之无关。

那么有多少编写 TypeScript 的用户将其作为主要语言呢? 52%。 另外 34% 的用户经常写作。 这意味着 36% 的 npm 用户定期编写 TypeScript,这是一个多么惊人的事实——三分之一的 JavaScript 开发人员再也不想使用 JavaScript! 顺便说一句,TypeScript 的功能之一是类型化描述文件,这些文件托管在 npm 存储库中。 上次我查看数据时,2.5% 的下载是类型描述文件,大部分是通过 VS Code 自动下载的,这要感谢 Google。

逃避 JavaScript 的另一个趋势是 WebAssembly。 它可以以接近本机的速度运行 Web 应用程序。 除了性能之外,它还使人们能够直接在 Web 上使用用其他语言编写的现成代码。 我认为最酷的功能之一是您可以编译模块并将它们发布到 npm 存储库,然后将它们无缝安装到您的应用程序中。

统计数据显示,WebAssembly 仍处于发展早期阶段,只有 3% 的用户使用它,即 30 万开发人员; 只有 0.6% 的 npm 库是 wasm 软件包,但此类软件包非常出色。 值得注意的是,54%的开发者正在考虑使用WebAssembly,表明其发展潜力非常大。

为什么 JavaScript 是最流行的编程语言

在本次会议中,我想回答的第一个问题是为什么 JavaScript 是最流行的编程语言?

首先,我们说JavaScript是“最流行的”,而不是认为它是“设计最好的”编程语言。 JavaScript 如此流行的原因之一是 npm 库的存在。 有人做了一项研究来找出人们到底为什么选择一种编程语言,是因为它的特性吗? 表现? 还是老板被迫使用的? 因此,第一个答案是这种语言有很多开源库。 如果一种语言有很多库可以帮助你完成工作,那么开发人员会非常愿意使用它。

人们不断向我发送这张图片,展示了为什么 JavaScript 具有如此惊人的魔力 - 这张图片非常好,因为每当有人向 npm 添加包时,JavaScript 的陷阱就会更深,吸引更多的开发人员并将他们牢牢地绑在这里。 开发者越多,陷阱的吸力就越强。

这种情况也催生了一个新现象,那就是“不情愿的 JavaScript 开发者”大量出现。 过去这样的人很少,但如今至少有四分之一的 JavaScript 开发人员属于这些类别。 他们不喜欢编写 JavaScript,他们讨厌 JavaScript,他们编写 JavaScript 是因为他们别无选择。 这对于其他 JavaScript 开发人员来说并不是一个好消息,因为讨厌 JavaScript 的开发人员无法编写出非常好的 JavaScript 代码。

这种情况以前就发生过,几年前,当时 Ruby 开发人员发现自己陷入了 JavaScript 世界,讨厌它,在各种调查中表达了他们的不满,并试图发明 CopyScript 来解决这个问题。 结果,Ruby 开发者的心声被听到了,JavaScript 现在拥有了我们过去在 Ruby 中使用的一大堆功能。 TypeScript 也是类似的路径。 前面提到,很多主要使用类型化语言,尤其是Java、C#等的开发者都非常怀念类型,而TypeScript让他们重新拥抱类型,这对他们来说是非常欣喜的。

typescript扩展操作-摆脱 JavaScript,TypeScript 成为新宠

此外,在我们的调查中,17% 对 WebAssembly 感兴趣的用户表示,他们对 WebAssembly 感兴趣是因为他们不再想编写 JavaScript。 WebAssembly 可以让人们免于编写 JavaScript,从而解放了许多不情愿的 JavaScript 开发人员。 这并不是坏消息,因为首先,并不是每个人都这样做,其次,当人们编写 WebAssembly 时,当他们想要共享代码时,他们自然会想到 npm 库。 他们继续使用 npm 来让 JavaScript 变得更加强大,这非常令人兴奋。

我们来看看React的情况。 为什么它如此受欢迎? 部分原因是它不是一个完整的Web框架,没有路由、数据模型等东西。 React 只是一个组件模型,它创建了非常好的可重用组件。 例如,这个颜色选择器和日期选择器就是很好的反例。

React 还可以使用 React Hooks,这是一种处理状态的方法,您可以使用 npm 将其安装到应用程序中。 React 使用这个库为您提供了很多很酷的功能,它们都使用 Web API,您可以轻松导出它们,而无需从头开始编写大量代码,为您的 React 应用程序增添色彩。

这也预示着光明的未来,我们可以将Web应用构建成一种新的、更高层次的表现形式; 我们不需要担心服务器端,只需将现成的组件放在一起,并且不需要在每个项目中创建一个新的从头构建也可以做出一个很棒的应用程序。 这也形成了一个良性循环,npm 的组件越多,吸引力就越大,社区也就越有能力。 React将成为引领历史车轮的力量,永不止步。 但这样的未来并不能保证一定会发生。 React 的增长正在放缓,而 Vue 的下降则很强劲。 将来我们会听到 React 是否能保持现在的状态。

React 在后端的统治地位也彻底改变了前端的面貌。 支持React应用程序的服务器端渲染框架现在比传统的前端框架更受欢迎。 我们只需要为客户端编译代码,不需要为服务器创建任何东西。 我们让服务器处理并渲染。 让Web应用程序全部成为丰富的后端应用程序并在服务器端渲染是一个好主意吗? 我不知道。 但这种观点确实很流行、很流行。 至少有一家浏览器制造商已经开始进行有针对性的优化,以便浏览器能够更快地运行 React 应用程序。 去年我觉得 React 组件应该成为 WebAPI 的一部分,现在我仍然坚持这一点。

未来展望

结合这个趋势和分析,我们可以展望JavaScript的未来。

首先可以确定的是npm Tink,这个技术非常值得期待。

其次是组件化的趋势。 想象一下未来的Web世界:你只需要组装各种组件,并且不需要知道这个组件的细节就可以创建一个非常好的应用程序,多么令人着迷。 Web应用程序的开发看起来就像拖放各种组件那么简单,那么有多少新人会加入这个行业呢? 这不会威胁到当今程序员的工作。 高级程序员负责编写组件,然后十倍于普通开发人员的数量将使用它们来构建构建块。 全新的表现水平,全新的网络开发者社区,这是一个令人兴奋的未来。

然后是 WebAssembly,通过它您可以将各种其他库引入 JavaScript 世界,使它们具有互操作性,使构建应用程序变得更容易,并构建更丰富的内容。 最后是原生应用程序开发,近一半的 JavaScript 开发者正在开发原生应用程序。 未来,我们的应用不仅会运行在网络上,还会出现在我们的手表、鞋帽、VR头盔等设备上。 JavaScript 将无处不在,将所有语言吸收到一个由不断扩大的开发者社区构建的众多开源组件组成的统一世界中。 这样的未来已经可以想象。

在过去的23年里,我从未像现在这样感到更加雄心勃勃。 所有 JavaScript 开发者都处于这个阶段的中心,在正确的时间、正确的地点参与历史的进程。 网络是一种神奇的力量,促进善与恶的生长。 它是玩具,也是工具,是游乐园,也是大市场。 它给我们带来惊喜和焦虑的力量。 我们可以开辟新天地,也可以摧毁网络上的美好事物。 但我相信,从长远来看,我们会选择帮助世界发展的道路。 我们都不同程度地做过有害的事,但随着时间的推移,我们的善行和孝行会更加闪耀。

我希望我明天分享的内容可以帮助 JavaScript 开发人员了解正在发生的事情,激励您并激发您的兴趣。 感谢您的观看。

英文原文:

活动推荐

Serverless技术被认为是未来后端发展的趋势。 WebAssembly离我们越来越近了。 跨端小程序开发越来越普遍。 企业级应用后端稳定性保障手段更加成熟。 一切都告诉我们,前端技术有太多的经验值得学习。 7月12日,上海ArchSummit全球架构师,一口气抓到了所有干货。 扫码或点击阅读原文了解详细信息。

全价时段请联系票务惠惠17326843116报名

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript扩展操作-摆脱 JavaScript,TypeScript 成为新宠 https://www.wkzy.net/game/154401.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务