Computational power burst in SOCs make it possible to integrate JavaScript engines within mini-sized portable devices.
by Conmajia
PC 上的 JavaScript 已经发展到 ECMAScript 6 (ES6) ,马上 ES10 都快出来了 (虽然还是草案) ,但是硬件上的 JS 却很少听说 。这几年手持设备/可穿戴设备的发展非常快 ,可以说快到令人发指 。以 ARM 为主的嵌入式 CPU 几年前运行 gingerbread 都还卡的不行 ,现在已经 845 、855 ,3GHz 主频起步 ,轻松秒杀一票 PC 了 。既然硬件这么强 ,那么我就有了在嵌入式设备里玩 JavaScript 的可能 ,并且我坚信它一定是可行的 ,于是我找权威人士咨询了一下 。

▲ ECMA 秘书长 Dr Istvan Sebestyen 很快回复了我
果然 ,这方面的工作早就开展起来了 ,这证明了我的想法是可行的 。按图索骥 ,在联系了Hoddie 和 Luthi 之后 ,我找到了用于嵌入式设备的 JavaScript 草案 。这份草案在 ECMA 2019 备忘录中已经有了明确的 agenda ,让我突然有点兴奋 。
TC53 – Smart Wearable Systems and Sensor-based Devices
Scope:
Internet of Things (IoT) is becoming a reality, and with it, the appearance of small intelligent devices linked together by large data networks to data centers collecting and analyzing “big data”. A sizable category of such intelligent devices are in form of so called wearables. Wearable sensor-based systems can comprise various types of small sensors, transmission modules and processing capabilities, and can thus capture various information ranging from monitoring of bodily activities to blood pressure, body temperature and heart rate in wearable devices, and external temperature, humidity, atmospheric pressure, location, and even altitude in small intelligent devices.
事实上 ,嵌入式设备的 JS 引擎目前全世界只有 Peter Hoddie 的 Moddable 公司一家在提供 。不过他们起步很早 ,大约在 2005 年前后发布了第一个公开的用于硬件的 JS 引擎叫做 XS3 ,基于 ES3 。但使用的厂家比较少 ,主要是 Sony 在用 ,代表产品 PRS-500 。

▲ 注定扑街的另类电子书
随后 2010 、2014 年前后 ,XS5 、XS6 分别发布 ,可惜依然没什么代表性的产品 。这可以理解 ,那会儿嵌入式设备的计算能力还是太若弱了 ,必须牺牲很大一部分资源来实现硬件 JS 。从第 6 版开始 ,XS 慢慢发力 ,并实行了开源 ,加快发展步伐 。

▲ 基于 XS6 的产品 ,我不知道这是什么玩意儿 ,看着像 wifi router
现在 ,到了最新的 XS7 之后 ,硬件 JS 已经非常强大了 。除了跨平台支持 win 、mac 、linux 之外 ,还通过了几乎全部 Test262 。图片有点旧 ,最新版是 99.8%/99.4%的 comformance 。新的 XS7 现在成为了 TC-39 的核心 。

▲ 语言特性方面 ,已经通关了
XS 不光可以运行在嵌入式设备上 ,还可以集成到 PC 里 。这一点 ,让我觉得它将来的应用非常广泛 。想象一下 ,一台自带“JS 引擎”的手环 、路由器 、电脑 ,听着就很带感 。
 设备开发必然如虎添翼 。XS 甚至还有更大的野心 ,想要在多核 MCU 上实现并行计算能力 ,支持 automics
、shared memory
等等 。并行的 JavaScript ,我他妈吹爆!
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?