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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章