星期四 06 晚上 十二月 5o 2024
Oracle engages its lawyers and JavaScript turns 29
#715 — December 5, 2024
🗓️ If you missed last week’s issue, don’t worry, it didn’t exist – we took a week off for Thanksgiving! We’re now back all the way through to the Christmas break :-)
__
Your editor, Peter Cooper
Together with
JavaScript™ Weekly
Deno v. Oracle: Cancelling the JavaScript Trademark — Did you know Oracle formally owns the ‘JavaScript’ trademark? There have been a few efforts to change this over the years but Oracle isn’t listening, so the Deno team formally filed a petition to cancel the trademark.
Deno
⚖️ And, as of this week, it looks like Oracle is lawyering up to defend it [PDF].
🎂 JavaScript Turns 29 Years Old — If you’re wondering why Oracle has the JavaScript trademark, it’s because Sun owned the name and Oracle acquired Sun (which is also why it owns Java). As someone who was posting inane questions in comp.lang.javascript
in 1996, this news makes me feel old – no-one could have anticipated what JavaScript would be today.
Netscape and Sun Microsystems
Add Excel-like Spreadsheet Functionality to Your JavaScript Apps — SpreadJS is the industry-leading JavaScript spreadsheet for adding advanced spreadsheet features to your enterprise apps. Build finance, analysis, budget, and other apps. Excel I/O, 500+ calc functions, tables, charts, and more. View demos now.
SpreadJS from MESCIUS inc sponsor
Astro 5.0: The Web Framework for Content-Driven Sites — Astro has taken the front-end world by storm and v5.0 keeps up its rapid pace of development. Content Layer makes it easy to load content from any source and Server Islands can combine cached, static content with dynamic content. There’s now a type-safe way to manage environment variables and Vite 6 is along for the ride too. You can play with Astro 5 using the astro.new
site.
The Astro Team
Take the State of JavaScript 2024 Survey — Each year, Devographics runs a popular survey to see what JS features and tools you know about, use, and love/hate. It’s structured such that you can learn something just from taking it and the results are always interesting (see 2023’s). It’s open for a few more days, despite what the page says. (Or ▶️ watch someone else taking it?)
Devographics
IN BRIEF:
npmjs.com has a ‘new, streamlined search experience. It’s mostly a tweaking of the ‘sort’ options – so take a search like this one for ‘svg’, you can now sort by recent download counts and dependency levels.
TC39 News: Import Sync (explained here) is being promoted to stage 1, Error.isError moves to stage 3, and Intl.DurationFormat moves to stage 4.
🎄 Adrian Roselli has a roundup of development-themed advent calendars for you to enjoy this month, including Advent of TypeScript. ‘Tis the season!
Porffor is an interesting ahead-of-time JavaScript compiler, now complete with a snazzy new homepage.
test262.fyi presents a technical view of how different JS engines fare on the official ECMAScript conformance suite.
RELEASES:
TypeScript 5.7 – The final release of the typed JavaScript superset.
Node.js v22.12.0 (LTS) – A noteworthy release as it’s the first Node LTS release with require(esm)
enabled by default.
Radon IDE 1.0 – Turn VS Code or Cursor into a fully-fledged React Native IDE.
Prisma 6 – Powerful Node.js + TypeScript ORM.
Vite 6.0, React Router 7.0, Undici 7, ESLint v9.16.0, Meteor.js 3.1, Relay 18.2, Tailwind CSS v4.0 Beta, Redux Toolkit 2.4, Bun 1.1.38, NeutralinoJS 5.5
📒 Articles & Tutorials
🤖 Using Transformers.js for AI in the Browser — Transformers.js is a seriously impressive project we link from time to time that lets you run pretrained machine learning models in the browser. Here’s a practical look at actually playing with it yourself right now.
Raymond Camden
Working with JavaScript’s Scheduler API — A look at an API only available in Chromium/Edge for now, but that promises a way to prioritize and control task execution in a more refined way than was possible till now.
Trevor I. Lasn
Quokka V2: Deeper Code Insights & Interactive Timeline with New UI — The #1 JavaScript scratchpad just got better! Quokka v2 brings a new UI, interactive timeline, and tools for faster prototyping.
Wallaby Team sponsor
📉 How To Improve ‘Interaction to Next Paint’ in React Apps — Interaction to Next Paint (INP) is a Web performance metric based on the responsiveness of an app to user interactions – Google uses it as part of its ranking mechanism. Jacob offers up advice and resources for improving your INP scores in React apps.
Jacob ‘Kurt’ Groß
How Airtable Scaled TypeScript to Thousands of Projects — “Today we have nearly 3000 TypeScript projects. That’s why we’re sharing our journey to so many projects, and how it reduced our typechecking time by 65%.”
Michael Mitchell (Airtable)
▶ Building a Teleprompter App in 30 Minutes with AI — Building apps with AI powered tools isn’t unusual nowadays, but if you’ve never been through the process, this is a good look at how it works all the way through to deployment.
Kilian Ekamp
Build Fully Functional Apps in Minutes, Not Months — Create, run, edit, and deploy full-stack web apps with Bolt.
StackBlitz sponsor
📺 Four Talks from the London TypeScript Meetup – All top notch talks. Bloomberg
📄 Optimize JS Module Loading with link rel='modulepreload'
Trevor I. Lasn
📄 Running Your Next.js SSR App on Deno Deploy Orriols and Jiang (Deno)
📄 From Jekyll to Astro: An AI-Assisted Migration Kevin London
🛠 Code & Tools
Linkify 4.2: Link Up URLs, Emails, and More in Plain Text — Given plain text containing things like links, hashtags, IP addresses, and email addresses, this will generate the correct code to display it on the Web. GitHub repo.
Hypercontext
Skia Canvas 2.0: A ‘Browserless’ Canvas Environment for Node.js — Based on Google’s Skia engine and offers end results similar to Chrome’s own canvas system. GPU accelerated and can render images, paths, fonts, shapes, etc. v2.0 adds support for WOFF/WOFF2 fonts, WEBP, and more. GitHub repo.
Christian Swinehart
Introducing <Waitlist/
> Mode - A Virtual Queue for Your App — Launching a new product but not ready to open it up to everyone yet? Waitlist Sign-up mode is your solution.
Clerk sponsor
Math.js 14.0: An Extensive Math Library — Work with complex numbers, fractions, units, matrices, symbolic computation, etc. A long standing library continuing to get frequent updates. GitHub repo.
Jos de Jong
Onlook: ‘Figma’-Like Design App for React — A new open source, local-first design app (for Windows, Linux & macOS) targeting React apps. Design layouts directly on a live page and instantly write your changes to code. GitHub repo.
On Off Inc.
🕒 SpaceTime 7.7: A Lightweight Timezone Library — Use this to calculate times in other timezones. Has a Moment-like API but is immutable. No dependencies. Now updated for 2025. GitHub repo.
Spencer Kelly
BunBuster: A Fast Web and TCP Fuzzer for Brute Forcing Servers — As always, use these sorts of things in a responsible way, but it’s interesting to see tools like this now being built in JavaScript, thanks to Bun’s speed and ease of distributing binaries.
Tiago Rangel
Kaluma: A Tiny JS Runtime for the Raspberry Pi Pico — Can a JS runtime squeeze into 64KB to run on the RP2040-based Raspberry Pi Pico? Kaluma can, even while offering Node.js-style niceties.
Kaluma Project
Todoctor: A Tool to Analyze and Track TODO Comments — A CLI tool designed to collect and monitor TODO/FIXME-style comments in JavaScript and TypeScript projects. GitHub repo.
Azat S
📰 Classifieds
🪝 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
🐍 PythonMonkey 1.1 – Embed the SpiderMonkey JS engine into Python’s VM.
nrm 1.5 – Fast switching between registries: npm, cnpm, nj, taobao.
LogTape 0.8 – Simple logging library for all major JS runtimes.
Faker 9.3 – Generate fabricated data to your heart’s content.
np 10.1 – A better npm publish
. Now supports Bun too.
DOCX 9.1 – Generate .docx / Word files from JavaScript.
Preact 10.25 – The 3KB React-compatible alternative.
Published by Cooperpress and edited by Peter Cooper
‘JavaScript’ is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle.
#715 — 2024 年 12 月 5 日
🗓️ 如果您错过了上周的问题,别担心,它不存在 – 我们在感恩节休息了一周!我们现在已经回到圣诞假期了:-)
__
您的编辑彼得·库珀
连同
[](https://javascriptweekly. com/link/163110/d076523b1d)
JavaScript™ 每周
Deno 诉 Oracle:取消 JavaScript 商标 — 您知道 Oracle 正式拥有“JavaScript”商标吗?多年来,已经做出了一些努力来改变这一点,但 Oracle 没有倾听,因此 Deno 团队正式提交了取消该商标的请愿书。
德诺
⚖️ 而且,截至本周,Oracle 似乎正在通过律师为其辩护 [PDF]。
🎂 JavaScript 已有 29 岁了 — 如果您想知道为什么Oracle 拥有 JavaScript 商标,那是因为 Sun 拥有名称和 Oracle 收购 Sun(这也是为什么它拥有 Java)。作为 1996 年在“comp.lang.javascript”中发布愚蠢问题的人,这个消息让我感觉自己老了——没有人能预料到今天的 JavaScript 会是什么样子。
网景和太阳微系统公司
[](https://javascriptweekly.com/link/163110/d076523b1d )
向您的 JavaScript 应用程序添加类似 Excel 的电子表格功能 — SpreadJS 是业界领先的 JavaScript 电子表格,用于向您的 JavaScript 应用程序添加高级电子表格功能企业应用程序。构建财务、分析、预算和其他应用程序。 Excel I/O、500 多个计算函数、表格、图表等。立即观看演示。
来自 MESCIUS Inc 赞助商的 SpreadJS
Astro 5.0:内容驱动网站的 Web 框架 — Astro 席卷了前端世界,v5.0 紧随其后其发展速度之快。 内容层可以轻松地从任何来源加载内容,而服务器岛可以将缓存的静态内容与动态内容结合起来。现在有一种类型安全的方法来管理环境变量,Vite 6 也随之而来。您可以使用“astro.new”网站来玩 Astro 5。](https://javascriptweekly.com/link/163119/d076523b1d)
阿斯特罗团队
参与 JavaScript 2024 年现状 调查 — 每年,Devgraphics 都会开展一项热门调查,以了解您所了解的 JS 功能和工具了解、使用和爱/恨。它的结构使得您只需通过学习就能学到一些东西,而且结果总是很有趣(参见 2023 年的)。不管页面上怎么说,它还会开放几天。 (或者▶️看别人拿它?)
地形学
简而言之:
[npmjs.com 拥有“全新、简化的搜索体验”(https://javascriptweekly.com/link/163120/d076523b1d)。这主要是对“排序”选项的调整 - 因此,像这样搜索“svg”,您现在可以按最近的下载计数和依赖性进行排序水平。
TC39 新闻: 导入同步(此处解释)正在导入晋升至第一阶段, Error.isError 移至第 3 阶段,Intl.DurationFormat 移至第 4 阶段。
🎄 Adrian Roselli 为您提供了本月的以开发为主题的降临日历综述,其中包括[TypeScript 的降临](https://javascriptweekly. com/link/163127/d076523b1d)。正是这个季节!
Porffor 是一个有趣的提前 JavaScript 编译器,现在拥有一个时髦的新主页。
test262.fyi 提供了不同 JS 引擎如何在官方 ECMAScript 一致性套件上运行的技术视图。
发布:
TypeScript 5.7 – 类型化 JavaScript 超集的最终版本。
Node.js v22.12.0 (LTS) – 一个值得注意的版本,因为它是第一个默认启用“require(esm)”的 Node LTS 版本。
Radon IDE 1.0 – 将 VS Code 或 Cursor 转变为成熟的 React Native IDE。
Prisma 6 – 强大的 Node.js + TypeScript ORM。
Vite 6.0、React Router 7.0、[Undici 7](https:// /javascriptweekly.com/link/163136/d076523b1d), ESLint v9.16.0、Meteor.js 3.1、中继18.2、Tailwind CSS v4.0 Beta、[Redux 工具包 2.4](https: //javascriptweekly.com/link/163141/d076523b1d), Bun 1.1.38、NeutralinoJS 5.5
📒 文章和教程
🤖 在浏览器中使用 Transformers.js 实现 AI — [Transformers.js](https://javascriptweekly.com/link /163145/d076523b1d)是一个令人印象深刻的项目,我们不时链接它,让您运行预训练的机器学习浏览器中的模型。以下是您现在实际使用它的实际情况。
雷蒙德·卡姆登
使用 JavaScript 的 Scheduler API — 查看目前仅在 Chromium/Edge 中可用的 API,但这有望提供一种方法以比目前更精细的方式确定任务执行的优先顺序和控制任务执行。
特雷弗·拉森
Quokka V2:更深入的代码洞察和带有新 UI 的交互式时间线 — #1 JavaScript 便签本变得更好了! Quokka v2 带来了新的 UI、交互式时间线和更快的原型设计工具。
小袋鼠队赞助商
📉 如何改进 React 应用程序中的“与下一个绘制的交互” — [与下一个绘制的交互 (INP)](https:// javascriptweekly.com/link/163149/d076523b1d) 是一种基于应用程序对用户响应能力的 Web 性能指标互动——谷歌将其用作其排名机制的一部分。 Jacob 提供了提高 React 应用中的 INP 分数的建议和资源。
雅各布·“库尔特”·格罗斯
Airtable 如何将 TypeScript 扩展到数千个项目 — “今天我们有近 3000 个 TypeScript 项目。这就是为什么我们要分享我们的这么多项目之旅,以及它如何将我们的类型检查时间减少 65%。”
迈克尔·米切尔(Airtable)
▶ 使用 AI 在 30 分钟内构建提词器应用程序 — 使用 AI 支持的工具构建应用程序如今并不罕见,但如果您我从未经历过这个过程,这是一个很好的了解它是如何一直到部署的。
基利安·埃坎普
在几分钟而不是几个月内构建功能齐全的应用程序 — 使用 Bolt 创建、运行、编辑和部署全栈 Web 应用程序。
StackBlitz 赞助商
📺 伦敦 TypeScript 聚会的四场演讲 – 所有顶级演讲。彭博社
📄 使用 link rel='modulepreload'
优化 JS 模块加载 Trevor I. Lasn
📄 在 Deno 部署上运行 Next.js SSR 应用程序 Orriols 和 Jiang (Deno)
📄 从 Jekyll 到 Astro:AI 辅助迁移 Kevin London
🛠 代码和工具
Linkify 4.2:以纯文本形式链接 URL、电子邮件等 — 给定包含链接、主题标签、IP 等内容的纯文本地址和电子邮件地址,这将生成正确的代码以将其显示在 Web 上。 GitHub 存储库
超语境
Skia Canvas 2.0:Node.js 的“无浏览器”Canvas 环境 — 基于 Google 的 [Skia 引擎](https:// /javascriptweekly.com/link/163160/d076523b1d)并提供与 Chrome 自己的画布类似的最终结果 系统。 GPU 加速,可以渲染图像、路径、字体、形状等。v2.0 增加了对 WOFF/WOFF2 字体、WEBP 等的支持。 GitHub 存储库。
克里斯蒂安·斯温哈特
引入 <Waitlist/
> 模式 - 为您的应用程序提供虚拟队列 — 推出新产品但尚未准备好打开它到大家了吗?候补名单注册模式是您的解决方案。
文员赞助人
Math.js 14.0:扩展的数学库 — 处理复数、分数、单位、矩阵、符号计算等。常设图书馆继续频繁更新。 GitHub 存储库。
何塞·德容
Onlook:类似 Figma 的 React 设计应用程序 — 一个新的开源、本地优先的设计应用程序(适用于 Windows、Linux 和macOS)针对 React 应用程序。直接在实时页面上设计布局并立即将更改写入代码。 GitHub 存储库。
开关公司
🕒 SpaceTime 7.7:轻量级时区库 — 使用它来计算其他时区的时间。具有类似 Moment 的 API,但不可变。没有依赖性。现已更新为 2025 年。GitHub 存储库
斯宾塞·凯利
BunBuster:用于暴力破解服务器的快速 Web 和 TCP 模糊器 — 一如既往,以负责任的方式使用这些东西,但它是有趣的是,由于 Bun 的速度和分发二进制文件的便捷性,现在用 JavaScript 构建了这样的工具。
蒂亚戈·兰赫尔
Kaluma:适用于 Raspberry Pi Pico 的小型 JS 运行时 — JS 运行时能否压缩到 64KB 以在基于 RP2040 的 Raspberry Pi 上运行微微? Kaluma 可以,即使提供 Node.js 风格的细节也是如此。
卡鲁马项目
Todoctor:分析和跟踪 TODO 评论的工具 — 一个 CLI 工具,旨在收集和监控 TODO/FIXME 风格的评论JavaScript 和 TypeScript 项目。 GitHub 存储库。
阿扎特S
📰 分类广告
🪝 Hookdeck:一个无服务器队列,用于在事件驱动应用中可靠地发送、接收、转换、过滤和路由事件。
Meticulous 自动创建和维护 E2E UI 测试。零片。由 Lattice、Bilt Rewards 等公司使用。
🐍 PythonMonkey 1.1 – 将 SpiderMonkey JS 引擎嵌入到 Python 的 VM 中。
nrm 1.5 – 在注册表之间快速切换:npm、cnpm、nj、taobao。
LogTape 0.8 – 适用于所有主要 JS 运行时的简单日志库。
Faker 9.3 – 生成随心所欲的捏造数据。
np 10.1 – 更好的“npm 发布”。现在也支持 Bun。
DOCX 9.1 – 从 JavaScript 生成 .docx/Word 文件。
Preact 10.25 – 3KB React 兼容替代方案。
由 Cooperpress 出版,由 Peter Cooper 编辑
“JavaScript”是 Oracle Corporation 在美国的商标
我们未获得 Oracle 的认可或隶属于 Oracle。
发布者