发布于 2015-08-22 13:11:53 | 117 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Javascript教程,程序狗速度看过来!

JavaScript客户端脚本语言

Javascript 是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。


最近三星开源了IoT.js和JerryScript。IoT.js是一个使用JavaScript语言编写的物联网应用平台;JerryScript是一个适用于嵌入式设备的小型JavaScript引擎。

三星创建这两个项目的目的,是为了让JavaScript开发者能够构建物联网应用。物联网设备在CPU性能和内存空间上都有着严重的制约。因此, 三星设计了JerryScript引擎,它能够运行在小于64KB内存上,且全部代码能够存储在不足200KB的只读存储(ROM)上。在 JerryScript引擎上运行JavaScript代码看上去是这样的:

{
  jerry_init (JERRY_FLAG_ENABLE_LOG);

  char script [] = "print ('Hello, World!');";
  jerry_parse (script, strlen (script));

  jerry_run ();

  jerry_cleanup ();
}

IoT.js平台使用JerryScript引擎来运行JavaScript代码,使用libuv库来实现异步I/O。这样的结构让开发者能够创建物联网服务,让设备与设备、外界之间交互。IoT.js目前运行在Linux和NuttX(一个实时操作系统),目标设备为树莓派2(Raspberry Pi 2)和意法半导体开发板(ST board),后续计划支持其他微控制器(MCU)和物联网设备。IoT.jsAPI提供了缓冲、控制台、事件、通用输入输出接口(GPIO)、流(stream)、定时器等功能。

下图展示了运行在IoT.js/JerryScript平台上的JavaScript应用内部架构和相同应用在IoT.js和Node.js平台上运行的比较。

我们联系了三星,了解了更多关于这些项目的信息。

InfoQ:运行在只有64KB内存上的JavaScript引擎非常受限,你们是怎么做到这一点的?

三星:针对JavaScript引擎需要考虑许多质量属性。当前,最重要的是性能属性,因为我们希望运行在浏览器中的应用看起来像原生应用。

从物联网的角度,我们只关注内存占用。

JerryScript和当前多级自适应即时编译(JIT)引擎相比,是一个纯粹的解释器。所以它没有保存编译后代码的开销,甚至它的解析器也不保 存抽象语法树(AST)。它直接将源码按行解释成字节码。对于数据表现,JerryScript中的对象在大小上做了优化。JerryScript使用压 缩的指针、固定大小的字节码块、预分配对象池和数值对象的多种表示等方式同时达到遵守标准和内存优化。我们将持续不断的用各种方式减少内存消耗。你们可以 在http://samsung.github.io/jerryscript/internals/查看到JerryScript内部实现细节。

InfoQ:在物联网领域使用JavaScript语言有什么优势?

三星:JavaScript是当今最著名的编程语言之一[1][2][3],大量前端开发者对它非常熟悉。因此使用JavaScript可以方便的扩大物联网开发者社区规模。Android使用Java语言开发就是一个很好的历史事例。

另一方面,JavaScript在嵌入式设备开发中是非常便利的。它支持异步函数回调和异步I/O,这对基于事件驱动的硬件编程是非常有用的。

最后,JavaScript是网页编程中使用最广的语言。将物联网设备和互联网生态系统(web ecosystem)相互配合,对于构建物联网生态系统来说是一个明智的选择。因此,许多互联网标准,如HTTP、JSON、REST已经成为物联网连接 标准化的中心,唯一缺少的就是JavaScript。我们认为JavaScript在应用程序和服务互通层上是最重要的一环。

InfoQ:IoT.js提供了哪些功能?

三星:IoT.js的核心是向下兼容Node.js。为了做到这一点,IoT.js遵守CommonJS规范中的模块化编程,并且支持 Node.js API中核心功能的子集。针对物联网,我们正在定义嵌入式设备控制和物联网编程的标准模块。截至目前,我们定义了第一个通用输入输出接口(GPIO)访问 API的候选规范,并且实现了它的原型。我们认为,为了体现它的真正价值,这些活动应该在物联网社区的共识下完成。这就是我们开源IoT.js的原因。请 参阅GitHub上关于这个问题的讨论(https://goo.gl/7V8jNp)。

我们也会提供物联网连接层接口协议实现,如OIC/IoTivity、AllSeen联盟(AllSeen Alliance)等。它们将会以npm模块的方式发布。

查看英文原文:JerryScript & IoT.js: JavaScript for IoT from Samsung

转载自:infoq.com/cn



相关阅读 :
JerryScript 和 IoT.js:来自三星的物联网 JavaScript
最流行的编程语言 JavaScript 能做什么?
数万网站仍在使用有已知漏洞的老旧 JavaScript 库
微软的 JavaScript 引擎将很快支持 Asm.js
微软开源 JS 引擎 ChakraCore 支持 Linux 和 OSX
从编译器后门到 JS 后门
JavaScript文件惹祸:卡戴珊新网站不慎泄露了用户名和电子邮件
编程语言那么多 为什么Google独爱JS?
JavaScript 开发大师 Remy Sharp 谈调试的艺术
统治 Web 的 JavaScript 准备要接管桌面了
瑞典选民使用JavaScript代码作为自填候选人
创造 JavaScript 仅用 10 天,名称是为了更好推广
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务