在嵌入式设备中使用 JavaScript 的前景
by Conmajia
PC上的JavaScript已经发展到ECMAScript 6(ES6),马上ES10都快出来了(虽然还是草案),但是硬件上的JS却很少听说。这几年手持设备/可穿戴设备的发展非常快,可以说快到令人发指。以ARM为主的嵌入式CPU几年前运行gingerbread都还卡的不行,现在已经845、855,3GHz主频起步,轻松秒杀一票PC了。既然硬件这么强,那么我就有了在嵌入式设备里玩JavaScript的可能,并且我坚信它一定是可行的,于是我找权威人士咨询了一下。
果然,这方面的工作早就开展起来了。不过也证明了我的想法是可行的。按图索骥,在联系了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慢慢发力,并实行了开源,加快发展步伐。
现在,到了最新的XS7之后,硬件JS已经非常强大了。除了跨平台支持win、mac、linux之外,还通过了几乎全部Test262。图片有点旧,最新版是99.8%/99.4%的comformance。新的XS7现在成为了TC-39的核心。
XS不光可以运行在嵌入式设备上,还可以集成到PC里。这一点,让我觉得它将来的应用非常广泛。想象一下,一台自带“JS引擎”的手环、路由器、电脑,听着就很带感。
最近,XS8也即将出现。显然TC-53就是它的雏形。根据介绍,async 和 await 都将粉墨登场,这对于MCU经典的setup-loop结构来说非常有用。不管是配置、读取传感器,还是上传数据等等操作,有了JS异步能力的加持,未来的嵌入式(可穿戴)设备开发必然如虎添翼。XS甚至还有更大的野心,想要在多核MCU上实现并行计算能力,支持 automics、shared memory 等等。并行的JavaScript,我他妈吹爆!
在嵌入式设备中使用 JavaScript 的前景的更多相关文章
- 在嵌入式设备中实现webrtc的第三种方式①
最近两年,我对于网络知识,包括底层协议学习比较多,webrtc这种几乎是使用到了所有层面网络协议的技术也逐渐进入我的视野. 之前我提出了两种在嵌入式设备上实现webrtc的方式,一是用官方代码,然后改 ...
- 在嵌入式设备中实现webrtc的第三种方式③
本系列的最后一篇,讲解收发音视频数据. 贴出最终效果: 其实很简单,直接调用writeFrame即可,如下图: 当然,这是部分代码,完整代码在下面,展开可见: 1 #include "com ...
- libmodbus库linux 嵌入式设备中的使用
libmodbus库的交叉编译:1]到libmodbus官网https://libmodbus.org/download/下载安装包,内部自带configure文件,官网推荐v3.1.6稳定版.另外注 ...
- 嵌入式设备web服务器比较
目录(?)[-] Boa Thttpd Mini_httpd Shttpd Lighttpd Goahead AppWeb Apache 开发语言和开发工具 结论 备注 现在在嵌入式设备中所使用的 ...
- 嵌入式设备web服务器
操作系统:ubuntu10.04 前言: 为了提高对设备的易操作性,很多设备中提供pc机直接通过浏览器操作设备的功能.这就需要在设备中实现web服务器. 现在在嵌入式设备中所使用的web服 ...
- 嵌入式设备上的 Linux 系统开发
转载:http://www.ibm.com/developerworks/cn/linux/embed/embdev/index.html 如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bo ...
- javascript高级编程3第二章:在html中使用javascript
2.1 <script>元素 向html页面中插入javascript的主要方法,就是使用<script>元素.这个元素被加入到正式的html规范中.html4.01为< ...
- JS高程2.在HTML中使用Javascript(1)
1.使用<script>元素向HTML页面中插入Javascript HTML4.01中<script>标签有6个属性: (1)async:可选.表示立即下载脚本,不影响页面中 ...
- Javascript高级程序设计——在HTML中使用Javascript
<script>元素 向HTML页面中插入Javascript的主要方法,就是使用<script>元素,<script>元素有六个属性: async:可选.表示应该 ...
随机推荐
- laravel 5.4中手动创建分页
这里是参考的的链接https://blog.csdn.net/hxx_yang/article/details/51753134 use Illuminate\Pagination\LengthAwa ...
- 关于CTO角色的认知
从3月份到现在2个月过去了,整个数据平台从0到1,算是有了一个基本的样子,跌跌撞撞的勉强支撑起运营的一些基本业务,当然这仅仅是开始,下一步还要从零打造自己的UBS系统,想想都兴奋呢!接下来总结下自己这 ...
- 深入javascript的主流的模块规范
文章首发于sau交流学习社区 一.前言 目前主流的模块规范: 1.UMD通用模块 2.CommonJs 3.es6 module 二.UMD模块(通用模块) (function (global, fa ...
- 命令行中的 vi 模式
命令行中修改已经输入的命令比较麻烦,如果你不知道一些快捷键的话,只能使用方向键一个一个字符地移动到目标位置进行修改,对于比较复杂且过长的命令来说,效率不高. 以下信息来自 bash 的 man 页面: ...
- 【3y】从零单排学Redis【青铜】
前言 只有光头才能变强 最近在学Redis,我相信只要是接触过Java开发的都会听过Redis这么一个技术.面试也是非常高频的一个知识点,之前一直都是处于了解阶段.秋招过后这段时间是没有什么压力的,所 ...
- 【Chrome插件】去掉因使用jsonView插件的弹出窗口"请停用以开发者模式运行的扩展程序"
前言 小编最近使用jsonView插件时,每次打开谷歌浏览器都会弹出下面的窗口,上网搜索,找到一个非常有效的方法. 解决方法 一.新建一个文本文档 二.复制代码 <# : @echo off c ...
- 一文了解腾讯云数据库SaaS服务
本文由云+社区发表 作者:邵宗文,2009年加入腾讯,现为腾讯云数据库专家产品经理.之前曾负责为OMG事业群构建数据库平台,部署,规划及运维支持,为腾讯网,新闻客户端,快报,视频,财经,体育等提供了稳 ...
- Windows Server 2016-DHCP增删功能介绍
动态主机配置协议(DHCP)是一种客户端/服务器协议,可自动为Internet协议(IP)主机提供其IP地址和其他相关配置信息,例如子网掩码和默认网关.RFC 2131和2132将DHCP定义为基于引 ...
- JVM内存结构/JVM运行时数据区,以及堆内存的划分
1.程序计数器: 程序计数器是线程私有的内存,JVM多线程是通过线程轮流切换并分配处理器执行时间的方式实现的,当线程切换后需要恢复到正确的执 行位置(处理器)时,就是通过程序计数器来实现的.此内存区域 ...
- odoo权限机制
转两篇关于权限的2篇文章,加深这方面的认识.注:后面附有原作者地址,希望不构成侵权. 第一篇:http://www.cnblogs.com/dancesir/p/6994030.html Odoo的权 ...