【ArchSummit架构师峰会】精华内容上线75%,AI大模型中台从理念到实践的探索!>>> 了解详情
写点什么

InfoQ 趋势报告之 JavaScript 和 Web 开发

  • 2018-12-14
  • 本文字数:3578 字

    阅读完需:约 12 分钟

InfoQ趋势报告之JavaScript和Web开发
  • 为了涵盖现代应用程序开发的方方面面,JavaScript、CSS、HTML 和 WebAssembly 标准的发展速度正在加快。

  • TypeScript 的受欢迎程度得到大幅提升,现在已经出现在 GitHub 排名前 10 位最受欢迎的编程语言中。InfoQ 今年报道了很多框架和库,它们在这一年当中都取得了引人注目的进展。

  • WebVR/WebXR 和机器学习推动了更好的 3D 渲染和数据可视化。

  • React 的采用率大大增加,但包括 Vue.js 在内的新一波框架浪潮正在迎头赶上。

  • 应用程序的各种选项,从渐进式 Web 应用程序到 Electron、Ionic 和 Cordova 的混合,再到 React Native 和 NativeScript 等原生编译器,都为使用 Web 技术构建有竞争力的应用程序提供了更高的灵活性。


InfoQ 每年都会更新主题图表,以体现技术趋势的变化。我们的编辑团队从各种渠道获得技术的实践状态、新出现的想法,当然也会把 QCon 现场的参与情况考虑在内。


对于位于图表右边的技术,你或许可以在 InfoQ 网站上找到很多与之相关的内容,因为在这些技术刚出现的时候,我们对它们进行了报道。当个人、团队和组织想要采用这些技术时,由创新者和早期采用者提供的指南对他们就有所裨益。


位于图表左边的是刚出现的技术,通常是创新者和早期采用者在使用这些技术,我们致力于报道这些内容,把这些新想法带给我们的读者,这样他们就知道是否该学习这些新技术或者关注它们的发展情况。


这个月我们关注的是JavaScript和Web开发,这个快速变化的领域每年都会出现一次以上的更新。下面这张图表是 2018 年第一季度也就是我们上一次研究得出的趋势图。



下面这张是 2018 年第四季度的修订版。



对于我们来说,Web 开发是一个很有趣的领域,几乎每天都会出现新的 JavaScript 框架。决定要关注哪些框架以及忽略掉哪些框架是一件非常具有挑战性的事情。开发人员可以学习这些有趣的框架,并从中获得灵感,即使他们当前可能没有在日常开发工作中使用它们。

创新者

从过去几个月的趋势来看,随着浏览器供应商不满足于最小可行功能并努力提高性能和填补空白,人们对 WebAssembly 的兴趣在不断增长。


CSS Houdini引发了 CSS 领域的一系列骚动,一些 CSS 新工具(如PostCSS)正在挑战现有的 CSS 预处理器,如 SASS、LESS 和Stylus。CSS Houdini 仍然是我们感兴趣的领域。


Deno是 Node.js 的原始作者的一个新项目,使用 TypeScript 开发,试图解决 Node.js 面临的一些问题。这是一个非常早期的项目,但却展现了非常关键的前景。


Dojo 是一个可以追溯到 2004 年的原始 JavaScript 工具包,在今年发布了版本 2(随后是版本 3 和版本 4)。它使用 TypeScript 进行了重大改写,转变成为反应式的、向标准看齐的、基于虚拟 DOM 的现代框架。新版本 Dojo 表现出了显著的性能提升和开发者人体工程学改进,但还处在采用周期的早期阶段。


TensorFlow.js 是基于 JavaScript 的机器学习基础库。我们不仅跟踪这个库,同时也跟踪利用这个库来推动 JavaScript 机器学习的其他项目。

早期采用者

在早期采用者方面,我们继续跟踪 Flow(JavaScript 的静态类型检查器)和Elm(用于开发基于 JavaScript 的 Web 应用程序的另一个 JavaScript 替代语言)。


从上一次发布报告以来,由于行业发生了巨大变化,这一次我们将其中一些技术归到这一类别:


  • GraphQL 仍然是我们要关注的趋势,已经有几个可用库,包括 Apollo、Vulcan.jsurql

  • ECMAScript 2018 现已定版,2019 版相关的工作正在顺利进行当中。

  • WebVR 及其未来的替代品WebXR提供了基于 HTML、CSS 和 JavaScript 的虚拟、增强和混合现实功能。当标准从 VR 扩展到 XR 时,出现了重大的用户流失,但在浏览器和 JavaScript 方面,却存在潜在的兴趣。A-FrameReact 360等库通过利用Three.js得到了一定的普及。


我们还添加了其他一些早期采用者:


与 Elm 一样,Reason是 JavaScript 的另一种替代方案,也提供了类型安全和简化的到 JavaScript 的转换。


W3C 的 Web 平台孵化器社区小组(WICG)一直致力于实现各种有用的标准,包括Intersection ObserverResize Observer等已确定的标准,以及实验性技术,如画中画WebUSB


Web 组件在过去几年中不断发展,现在 Chrome 和 Firefox 提供原生的支持,Safari 部分支持。很多框架和库本身也支持 Web 组件,如 Angular、Dojo、Ionic、StencilSvelte和 Vue.js。


CSS Next 包含了一系列 CSS 改进,其中有很多可以与 PostCSS 或 CSS Houdini 一起使用。


Ionic 4 目前处于测试阶段,它经历了一次重大变革,将自己与 Angular 等特定框架解耦,并专注于与现代 Web 标准看齐。


NativeScript 为 Angular 和 Vue.js 用户提供了原生编译选项,用于部署使用 Web 技术开发的移动应用程序。


Nest.js是一个很有前途的服务器端框架,使用 TypeScript 开发,并运行在 Node.js 之上。

早期大众

在早期大众类别中,Vue.js 继续发展,并获得更多的支持。我们认为它确实已经跨越了鸿沟,进入到“早期大众”状态。我们发现 Vue.js 在中国特别受欢迎,而且新版 InfoQ 网站也使用了该框架(目前处于测试阶段)。Vue.js 3 正在积极开发当中,并使用 TypeScript 进行重写。


Angular 最近发布了版本 7,并继续改进。


通常,构建和捆绑工具对于优化生产应用程序来说非常有用。几乎每个框架都会利用某些工具组合来优化性能。


我们已经将 Electron 和 TypeScript 推到了早期大众状态。Electron 是一个被广泛采用的桌面应用程序外壳,它结合了 Node.js 和 Chromium,为使用 Web 技术开发的应用程序提供基础设施。


TypeScript 是采用最为广泛的 JavaScript 变体,在过去几年中取得了实质性进展,现在大多数 JavaScript 框架都在利用它提供的工具和基础设施。根据最近发布的GitHub Octoverse报告,TypeScript 本身就是十大编程语言之一,而JavaScript状态报告将 TypeScript 列为迄今为止使用最广泛的 JavaScript 变体。


我们直接将三个项目添加到早期大众类别中:


React Native 是一个使用 JavaScript 和 React 构建原生移动应用程序的框架,它迅速成为一种流行的构建跨平台移动应用程序的方式。


同样,在讨论如何最有效地构建 JavaScript 应用程序时,函数式和反应式编程模式是人们避不开的话题。一些库(如 lodash)让这些模式变得更为流行。

晚期大众

随着 JavaScript 生态系统的不断成熟,现在晚期大众类别中的一些基础技术并没有被替换的迹象,几乎每个 JavaScript 开发者都在使用它们。


我们多个项目移到了晚期大众状态。


一般来说,IDE 和编辑器会得到广泛使用。在桌面方面,VS Code 似乎有领先 Atom、Sublime Text、WebStorm 甚至 vim 或 emacs 的潜力。基于浏览器的 IDE(如 CodeSandbox)将大部分 VS Code 体验带入 Web 浏览器,以便快速开发、实验和分享开发工作。


Babel 最近发布了版本 7,为开发人员提供了转换各种 JavaScript 版本的默认转换器。


React 已经成为自 jQuery 以来采用最为广泛的框架,并且还在不断发展,现在几乎每天都会有支持 React 的新项目发布。


Node.js 是一种采用十分广泛的 JavaScript 服务器端和命令行环境,NPM 是最常用的 Node.js 包管理器。几乎每个 JavaScript 项目都将 Node.js 作为命令行和构建工具,而 Node.js 也已经在服务器端开发和嵌入式系统中得到了广泛采用。


Express 也在我们的列表中,是一个采用最为广泛的基于 Node.js 的服务器端框架。Webpack 也在我们的列表中,它是一个事实上的构建和捆绑工具,也是基于 Node.js。


我们将 HTML5 和 ES6/2015 添加到晚期大众类别中,因为现在几乎每个 Web 应用程序都将使用这些功能作为最低基准。

落后者

我们把落后者放在报告的最后,虽然它们仍然被用在很多应用程序中,但在开发新项目时并不怎么会考虑使用它们。较新版本的 ES6 和 HTML5 分别取代了 ES5 和 HTML4。使用 Dojo 1.x 和 Angular 1.x 的应用程序仍然有很多,但已经进入了维护模式。jQuery 虽然带来了一些改进,但已经几乎被新的 HTML 和 JavaScript 功能或更成熟的框架所取代。

结论

JavaScript 生态系统正在蓬勃发展,虽然要跟上它的发展步伐具有一定挑战性,但我们相信这个领域的很多基础部分已经趋于稳定,从而带来了更多的创新机会。InfoQ 的团队将为读者带来JavaScript生态系统的专家级报道,我们欢迎读者提供反馈、评论和外部文章。




关于作者


Dylan Schiemann 是 SitePen 的首席执行官,也是 Dojo 的联合创始人,并活跃在 JavaScript、TypeScript 和开源社区中。在他的领导下,SitePen 为专注于构建高性能和可维护 Web 应用程序的企业组织带来了权威的解决方案。Dylan 目前的计划包括指导 Intern、TypeScript 和 Dojo 的开发。在与 jQuery 基金会合并组建 JS 基金会之前,Dylan 是 Dojo 基金会的联合创始人。他还是 Phoenix TypeScript 技术会议小组、伦敦 HalfStack 技术会议和 TSConf 的共同组织者。在工作之余,Dylan 喜欢旅行,并在世界各地的技术大会上分享他的经验。


查看英文原文JavaScript and Web Development InfoQ Trends Report


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2018-12-14 07:013709
用户头像

发布了 38 篇内容, 共 30.5 次阅读, 收获喜欢 206 次。

关注

评论 2 条评论

发布
用户头像
“构建和捆绑工具”???你玩捆绑play呢?译者长点心吧
2018-12-18 03:05
回复
没有更多了
发现更多内容

MongoDB写入数据策略

NineData

nosql mongodb Journaling 写入策略 读策略

【我在京东做研发】揭秘支撑京东万人规模技术人员协作的行云DevOps平台

京东科技开发者

ClickHouse 与 Amazon S3 结合?一起来探索其中奥秘

亚马逊云科技 (Amazon Web Services)

字字珠玑!GitHub爆赞的网络协议手册,被华为大佬指定内部必学?

做梦都在改BUG

Java 计算机网络 网络协议

SpringBoot+ThreadPoolTaskExecutor 批量插入百万级数据实测

做梦都在改BUG

Java Spring Boot 多线程 ThreadPoolTaskExecutor

软件测试 | YAML是什么?

测吧(北京)科技有限公司

测试

LeetCode题解:2373. 矩阵中的局部最大值,遍历,详细注释

Lee Chen

JavaScript LeetCode

2022 IoTDB Summit:IoTDB PMC 田原《大规模并行处理与边缘计算在 Apache IoTDB 中的实践》

Apache IoTDB

数据库 IoTDB

JDK 环境配置

流火

Java centos jdk window

在深圳龙岗,看见空间智能化的潮水涌动

脑极体

全屋智能

Portraiture4中文免费ps滤镜磨皮插件

茶色酒

Portraiture3

FL Studio2023免费中文版数字音频工作站软件

茶色酒

FL Studio2023

Hypium框架使能ArkTS应用高效测试

HarmonyOS开发者

HarmonyOS

老铁们看过来!2023首场昇腾AI开发者创享日来到“东北黑土地”沈阳

科技热闻

开源如何推动云计算的发展与创新 | 雨林开源行

开源雨林

开源 kubenetes OpenStack

零基础如何学习Web 安全,如何让普通人快速入门网络安全?

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

堪称神级!GitHub上标星157K的Java教程,全程干货,只讲重点

做梦都在改BUG

Java

架构实战营模块1第3课 - 什么是面向复杂度架构设计

净意

新必应(New Bing)申请出错终极方案

kcodez

微软 ChatGPT New Bing

ChatGPT Turbo API 18元/100万个单词

kcodez

openai ChatGPT

高性能存储SIG月度动态:ANCK 5.10正式支持ublk、erofs容器镜像按需读时延优化60%

OpenAnolis小助手

操作系统 高性能存储 龙蜥社区 sig

人工智能+低代码,打通AI落地的最后“一公里”

明道云

得物供应链复杂业务实时数仓建设之路

小小怪下士

Java 程序员 后端

再有人问你什么是分库分表,直接把这篇文章发给他

做梦都在改BUG

Java 分库分表

软件测试 | parametrize实现参数化

测吧(北京)科技有限公司

测试

2022 IoTDB Summit:Apache IoTDB PMC 张金瑞《为物联网场景优化的时序数据库共识协议》

Apache IoTDB

大数据 IoTDB

会声会影2023中文最新版消息

茶色酒

会声会影2023

图像的滤波与图像增强的Matlab实现

timerring

数字图像处理

Clean Start与Session Expiry Interval - MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 客户端 企业号 3 月 PK 榜

2022 IoTDB Summit:IoTDB PMC 曹高飞《Apache IoTDB 秒级扩容能力与存算分离实践》

Apache IoTDB

数据库 IoTDB

在文心一言出生地,百度悄悄燃烧AI小宇宙

白洞计划

百度 文心一言

InfoQ趋势报告之JavaScript和Web开发_语言 & 开发_Dylan Schiemann_InfoQ精选文章