自 2018 年以来,JavaScript 开源大奖每年都会选出四个类别最有影响力的开源项目:年度突破奖、最激动人心技术应用奖、年度最有趣项目奖和对社区最有影响力贡献奖。2020 年奖励了 6 个开源项目。
Deno和 Svelte 获得了年度突破奖。
Deno 是一个简单、安全的现代 JavaScript 和 TypeScript 运行时,使用了 V8,基于 Rust 开发。经过两年的开发,Deno 最终在 2020 年 5 月发布了 1.0 版本,并准备投产使用。Deno 支持 WebAssembly,使用可编译到 WebAssembly 的语言(Rust、Go、C++等)开发的原生库可在 Deno 应用程序中运行。
Svelte是一个基于组件的 UI 框架,用于构建交互式 Web 应用程序,如 React 或 Vue。但与 React 和 Vue 不同的是,Svelte 在构建时会对应用程序代码进行编译,并生成小而高性能的编译代码。Svelte 最近添加了 TypeScript 支持。据 wappalyzer.com 报道,《纽约时报》、Spotify、chess.com、飞利浦等很多网站都在使用 Svelte。
Mock Service Worker(MSW)获得了最激动人心技术应用奖。MSW 是一个针对浏览器和 Node 的 API 模拟库。MSW 的工作原理如下:
Mock Service Worker 与其他工具的区别在于它的用法。MSW 利用Service Worker API(拦截请求进行缓存)将定义的网络级别的响应发给捕获的请求。在这种情况下,应用程序不知道底层响应是模拟的。
在开发、测试和调试时都可以启用 MSW 的 API 模拟,无需后端支持。MSW 支持 REST 和 GraphQL API。
Pose Animator赢得今年的年度最有趣项目奖。Pose Animator 基于二维矢量图,根据从PoseNet和FaceMesh识别出的结果实时呈现曲线动画。它从计算机图形学中借鉴了基于骨架的动画的思想,并将其应用于向量角色:
来源:GitHub项目
PoseNet 是一个使用了TensorFlow.js的独立模型,支持在浏览器中进行实时姿势计算。MediaPipe Facemesh能够基于 486 个 3D 面部进行人脸识别。
对社区最具影响力贡献奖授予Perfume.js。这个库是一个 Web 性能库,用于度量所有以用户为中心的性能指标。Perfume.js 利用了最新的Performance API(如High Resolution Time)来收集现场数据,用以度量真实用户的体验。收集的数据包括第一次绘制(FP)、第一次内容绘制(FCP)、最大内容绘制(LCP)、第一次输入延迟(FID)、累计布局移位(CLS)、总阻塞时间(TBT)、导航时间、资源时间,等等。收集到的数据被输入到分析工具用于监控:
www.coinbase.com美国、意大利、印尼、尼日利亚站点的 FCP。图片来源为 Perfume 的 GitHub 主页
Perfume 还会在测量的数据中加入与设备能力(设备内存、CPU 数量和 Service Worker 的状态)有关的附加信息。
最后,“生产力促进奖”颁给了Snowpack。Snowpack 致力于构建恒定时间(<50 毫秒)的 Web 应用程序。它利用了 JavaScript 的原生模块系统(称为 ESM),并在开发期间为未打包的应用程序提供服务。Snowpack 通过插件支持生产打包构建。Snowpack 为 avaScript、TypeScript、JSX、CSS 和图像文件提供内置支持,并可通过插件支持 Vue 和 Svelte 文件。
Svelte 作者 Rich Harris 最近在 Svelte 峰会上演示了与 Svelte 下一个版本相关的工作,其中就使用了 Snowpack。Harris 解释说:
我认为我们很快就会到达一个点,即在开发过程中使用打包器的项目看起来会有点过时。
JavaScript开源大奖是由GitNation发起的,每年举办一次。GitNation 还负责管理React开源大奖和Vue开源大奖。
原文链接:
JavaScript Open Source Awards 2020 Distinguishes Six Impactful Projects
评论