关键的买点
- 新的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领域掀起了一场热潮,PostCSS等工具正在挑战SASS、LESS和Stylus等现有的CSS预处理程序。CSS Houdini是我们继续关注的一个领域。
Deno是Node最初的创建者开发的一个新项目。在TypeScript中编写,试图解决Node.js的挑战。这是一个非常早期的项目,但显示了重大的前景。
Dojo是最早的JavaScript工具包之一,可追溯到2004年,今年发布了版本2(以及随后的版本3和4!)这代表了一个使用TypeScript的主要重写,它将Dojo变成了一个现代的、响应式的、标准一致的、基于虚拟dom的框架。新版本在性能和开发人员人机工程学方面比同类产品有了显著的改进,但它还处于采用周期的早期。
js已经成为基于javascript的机器学习的基础库。我们跟踪这个库以及利用它推进JavaScript机器学习状态的项目。
早期采用者
看看我们早期的采用者,我们继续跟踪Flow(用于JavaScript的静态类型检查器)和Elm(用于生成基于JavaScript的web应用程序的替代JavaScript语言)。
自从我们的上一份报告以来,我们已经提升了一些技术到这一类别,由于增加了行业的吸收:
- GraphQL仍然是我们遵循的一个趋势,已经建立了几个库,包括Apollo、Vulcan.js和urql。
- ECMAScript 2018现在是最终版,2019版的工作正在顺利进行。
- WebVR及其未来的替代者WebXR通过HTML、CSS和JavaScript提供了虚拟、增强和混合现实功能。随着标准从VR扩展到XR,目前出现了很大的波动,但是浏览器和JavaScript对这个领域有很大的兴趣。像A-Frame和React 360这样的库通过使用Three.js而流行起来。
我们也增加了一些早期的采用者:
与Elm一样,Reason也是JavaScript的另一种替代方案,它还提供了类型安全性和对JavaScript的流线型转换。
WICG是W3C的Web平台孵化器社区小组,它一直致力于将各种各样的有用标准转化为成果,从交集观察器和调整大小观察器等最终标准,到picture-in-picture和WebUSB等更具实验性的技术。
Web组件在过去几年里不断发展,现在Chrome和Firefox都支持本地组件,Safari也提供部分支持,Edge也在努力。许多框架和库本身也支持web组件,包括Angular、Dojo、ion、Stencil、Svelte和Vue.js。
CSS Next包含了一系列在标准过程中不断改进的CSS,其中许多可能会与PostCSS或CSS Houdini一起使用。
ion4目前处于beta测试阶段,已经经历了重大的变化,将自己从Angular等特定框架中分离出来,并专注于与现代标准保持一致。
NativeScript为Angular和Vue.js用户提供了本地编译选项,用于部署使用web技术编写的移动应用程序。
最后,net .js是一个很有前途的服务器端框架,用TypeScript编写,运行在Node.js之上
早期的多数
在我们的“早期多数”类别中,Vue.js继续发展并获得支持,我们认为它已经跨越了“早期多数”状态的鸿沟。我们看到中国对Vue.js特别浓厚的兴趣,而最近重新设计的InfoQ也利用了这个框架,目前处于测试阶段。Vue.js 3正在积极开发中,包括使用TypeScript重写。
Angular的第7版最近发布了,并在不断改进。
构建和绑定工具通常对于优化生产应用程序非常有用。几乎每个框架都利用一些工具组合来优化性能。
我们已将electronic和TypeScript 提升至早期多数地位。electronic是一个被广泛采用的桌面应用程序外壳,它结合了Node.js和Chromium,为使用web技术的应用程序提供基础设施。
TypeScript是最广泛采用的JavaScript变体,在过去几年中取得了长足的进步,现在大多数JavaScript框架都利用了它的工具和基础结构。根据GitHub最近的一份10年报告,TypeScript本身是十大语言之一,JS的状态调查将TypeScript列为目前使用最广泛的JavaScript变体。
我们在早期多数人类别中直接增加了三个项目:
React Native是一个使用JavaScript和React构建本地移动应用的框架,并迅速成为构建跨平台移动应用的流行方式。
同样,函数式和反应式编程模式主导了关于如何最有效地构建JavaScript应用程序的讨论。像lodash这样的库帮助推广了这些模式。
晚期大众
随着JavaScript生态系统的成熟,现在有一些属于后主流类别的基础技术没有被取代的迹象,但是几乎每个JavaScript开发人员都在使用它们。
我们已经提升了几个项目到我们的后期多数地位。
ide和编辑器通常被广泛使用。在桌面上,VS代码似乎已经在Atom、Sublime Text、WebStorm、甚至vim或emacs上取得了实质性的领先。像CodeSandbox这样的基于浏览器的ide为web浏览器带来了大量的VS代码体验,用于快速开发、试验和共享开发成果。
Babel version 7最近发布了,它在新出现的JavaScript版本和开发人员需要根据需要支持的版本之间提供了默认的转换。
Babel,用于将源代码从JavaScript的新兴版本转换为生产环境中支持的语言特性集的JavaScript转换工具。
React是自jQuery以来应用最广泛的框架,并在不断发展;支持React的新项目几乎每天都会发布。
Node.js 是一个被广泛采用的JavaScript服务器端和命令行环境,NPM是最常用的Node.js包管理器。几乎每个JavaScript项目的命令行和构建工具都使用Node.js,而Node.js在服务器端开发和嵌入式系统中都得到了广泛采用。
Express也在我们的列表中,是使用最广泛的节点。js-based服务器端框架。Webpack也在我们的列表中,它是事实上的构建和绑定工具,也是基于Node.js的。
我们加入HTML5和ES6/2015作为后期的主流,因为几乎所有的web应用程序都使用这些特性作为最低基线。
落后者
我们用落后者来结束我们的报告,虽然它仍然在许多应用程序中使用,但是对于新的开发工作并没有引起很大的兴趣。更新的版本已经取代了ES5和HTML4。Dojo 1。x和角1。x虽然仍在广泛部署,但处于维护模式。jQuery虽然得到了一些改进,但大部分已经被新的HTML和JavaScript特性或更成熟的框架所取代。
结论
JavaScript生态系统正在蓬勃发展,尽管跟上变化的速度可能很有挑战性,但我们相信这个领域中的许多基础部分已经变得稳定,这为创新创造了额外的领域。InfoQ的团队将为您提供JavaScript领域的专家报道,我们欢迎您的反馈、评论和外部文章贡献。
本文:https://pub.intelligentx.net/node/810
讨论:请加入知识星球【首席架构师圈】
最新内容
- 39 minutes 1 second ago
- 43 minutes 57 seconds ago
- 46 minutes 26 seconds ago
- 49 minutes 24 seconds ago
- 7 hours ago
- 1 day 4 hours ago
- 1 week 3 days ago
- 1 week 3 days ago
- 1 week 3 days ago
- 1 week 3 days ago