超越Web:2015年的JavaScript
感谢 景庄 对《 JavaScript Beyond the Web in 2015 》一文的翻译。
2015年对于物联网(IoT,万物互联)而言无疑是非常重要的一年。我们看到了很多物联网设备在设备的尺寸和设备能力方面都有着非常大的进步。 包括像微软、三星这样的巨头公司也先后正式进入了这个领域,物联网社区在2015年整体上在朝着更加壮大的方向发展。 因此本文将会探讨与总结物联网和JavaScript技术在2015年的发展现状。虽然在物联网设备中使用JavaScript已经经历了一段时间的炒作与兴奋期, 这一年物联网社区对待JavaScript的态度也在整体上更为冷静。但JavaScript依然不失为物联网设备的开发者的一项重要的选择, 依然非常值得开发者尝试与考虑。本文将会介绍那些能够使用JavaScript进行开发的物联网设备,并介绍这些技术的相关发展现状。
Tessel 2
Tessel 2(图片来源:Tessel)
Tessel是个类似于Arduino的微控制器,不过它运行的是JavaScript而不是像C语言这样的传统语言。 Tessel对JavaScript开发者而言是一个最佳的入门物联网技术的设备。从去年Tessel被发布以来, 开发者们已经用它实现了很多 有趣的工作 。 Tessel 2是今年发布的,相比Tessel的第一代版本,有着很多令人兴奋的升级。
Tessel能够运行多种npm包,但是它本身不能运行Node.js,因此Tessel经常需要对一些常用的包构建兼容版本。 Tessel 2在这一点上有了很大的改建,它能够直接运行Node.js。基于这个原因,在它一发布我便提前预定了它。 Tessel 2的最大优点在于能够直接使用各种npm包,这为它带来了极大的潜力。
Tessel 2拥有两个USB端口,可以通过它们访问各种USB设备(例如摄像头等),就像访问Tessel的模块一样。 Tessel 2还拥有一个GPIO端口,用于通过跳线到引脚的方式连接各种电子设备。
相关资料
1. 提前预定Tessel 2 :你可以在它们的网站上提前预定Tessel 2,然后尽快开始你的创作。 Tessel 2将于2016年1月份正式发货。
2. Tessel的官方文档 :你可以参考相关的文档来开始你的工作(Tessel 2的文档和Tesse 1的文档非常相似)。
Open Hybrid
Open Hybrid(图片来源:OpenHybrid)
增强现实技术为控制我们身边的物联网设备提供了一种令人着迷的替代方案。你可以通过一个类似于手机App的增强现实界面来观察结果, 或者是基于该界面通过直观的、无限制的方法去控制这些物联网设备,而不是直接通过物理的方式去操控对象。 目前很多的公司都在探索增强现实方面的实现工作,MIT的媒体实验室目前开发了一个非常有趣的被称为Open Hybrid的设备, 它能够允许物联网开发者使用JavaScript来开发相关应用,使用JavaScript的开发者可能会对这项技术非常有兴趣。 Open Hybrid允许使用Web技术进行开发,包括HTML和JavaScript。目前它仍处于增强现实技术的早期阶段, 但这无疑让我们看到了物联网技术的未来潜力!
相关资料
1. 官方的Open Hybrid页面 :你可以了解该技术,并观看相关的演示视频,或者是下载相关的材料。
2. 有关OpenHybrid的演讲 :一个关于OpenHybrid背后相关的创意及构建过程的演讲。
三星的IoT.js和JerryScript
Samsung IoT.js和JerryScript页面
为了能够在物联网设备中使用 JavaScript ,三星为此投入了非常多的资源。2015年,三星开源了开源了JerryScript, 它是一个能够应用于物联网设备的JavaScript引擎。JerryScript使得JavaScript能够运行在小型的、资源有限的物联网设备中, 例如物联网中广泛使用的微控制器。在我看来,它有点类似于Tessel所想要达到的目标,但JerryScript的目标不仅仅是单一的设备, 而是想将触角延伸到更多更小的物联网设备中。
IoT.js 是三星为了能够在物联网社区中使用JavaScript的另一项尝试。 和JerryScript一样,它也是开源的。IoT.js是一个使用JavaScript为物联网设备创建可互操作的物联网平台的框架。 有人将它描述为一个轻量级的Node.js,但目前我还未能深入的去了解这项技术,因此不敢确信该描述是否准确。
目前IoT.js和JerryScript都处于早期开发阶段,因此我很期待它们在2016年的继续发展。我也非常希望三星能够将它们应用到一些具体的设备中, 从而让开发者们对它们有更深入的了解。
相关资料
1. 官方的JerryScript页面 :包含相关的下载链接,以及相关的入门指导。
2. 官方的IoT.js页面 :包含相关的下载链接,以及相关的入门指导。
从Spark到Particle
Particle Electron(图片来源:Particle)
在2015年,Spark更名为了Particle。Spark提供了一个Wi-Fi模块,使得嵌入在物联网设备中的微控制器能够与它们的自有云端服务通进行流式通信。 从JavaScript开发者的角度来看,它们拥有一个JavaScript SDK和很多兼容的第三方JavaScript插件。 虽然今年Spark更名为Particle,相关的设备的使用范围也有了更大的发展。
目前该公司已经在着手发布一个更快更可靠的微控制器,它被称为Photon。 它通过在Kickstarter的基础上增加了一个名为Electron的能够进行2G/3G通信的微控制器(无需Wi-Fi连接即可实现设备一直在线)。 Electron目前已经可以在它们的网站提前预定,并且预计在2016年1月份正式发货。
最后,这些设备在发展过程中会继续支持JavaScript API,因此JavaScript在未来的一年将有更多的机会去接触到更多的物联网设备。 并且,Particle有着一个非常壮大的社区。
相关资料
- Particle原型设备 :Particle的官方页面,展现了各种相关的原型设备及介绍。
- ParticleJS官方文档
Windows10的IoT核心
包括一个树莓派的Windows 10 IoT Core的开发者入门套装(图片来源:Microsoft and Adafruit)
微软今年正式面向全世界发布了Windows 10,为包括物联网设备在内的多种平台提供了一个统一的Windows平台。 微软在这方面也考虑到了JavaScript开发者,在Windows 10 IoT生态系统内通过 Chakra JavaScript 引擎 提供了对Node.js的支持。到目前为止,我所看到的使用Windows 10 IoT操作系统的主要物联网设备均为树莓派2。 MininowBoard Max和DragonBoard410c也支持Windows 10 IoT。经过一段事件,我们可能会发现更多的设备拥抱Windows 10 IoT这一生态。 有一点很重要,Windows 10 IoT Core使用的并不是一个完整功能的Windows 10操作系统,它是一个面向物联网设备的阉割版操作系统。
相关资料:
- 在Raspberry Pi 2中运行Windows 10 IoT :包含一个相关的系列,帮你使用树莓派2来入门和使用Windows 10 IoT。
- 在Windows IoT平台中运行Node.js :微软提供的一个官方示例,用于帮助开发者入门Windows 10 IoT的核心以及Node.js。
- Windows 10 IoT的核心文档和示例 :文档和例子,包括Node.js。
Evothings
运行在Mac OSX和移动设备上的Evothings Studio
Evothings是一组用于开发移动端的物联网Web应用的开发工具,在2015年它们有了较为显著的发展,并且功能上也越来越强大。 我是在今年的下半年才偶然发现了这组工具,并且深深的被它们所提供的功能所吸引。目前这组工具已经被集成到了一个称为Evothings Studio的应用中。 Evothings Studio允许你开发能够实时重载和调试的移动端的HTML5和JavaScript应用。 当我在我寻找合适的 Estimote蓝牙信标 时发现了它, 在这个场景下,它提供了完美的解决方案,因为桌面端的模拟器无法模拟蓝牙的连接信标。 通过在我的移动设备中运行Evothings,使得软件的测试过程变得非常的简单。
对于JavaScript开发者而言,这个平台也非常的令人兴奋,因为Evothings团队提供了 一套相关的示例文档 用于展示如何在大量的物联网设备中使用JavaScript。
相关资料:
- 官方入门文档 :包括相关的示例内容
- Evothings Tutorials :具体的项目实战
- 使用Estimote和Evothings来构建信标APP的原型
The IFTTT Maker Channel
IFTTT制作者频道
今年IFTTT发布了一个能够制作和接收自定义的HTTP请求的频道——IFTTT制作者频道,这个功能是物联网社区一直梦寐以求的。 这为用户通过IFTTT接入多种服务提供了可能,它允许用户通过自定义它们的制作者频道的方式来接收HTTP请求。
这项服务尤其适合Node.js开发者,因为HTTP请求可以轻易的通过Node.js来生成或接收。这意味着, 所有能够接入到Node.js的物联网设备都能够连接到IFTTT。
相关资料
- IFTTT制作者频道 :IFTTT制作者频道的官方页面。
- 将IoT和Node.js接入到IFTTT :一些开发样例。
- 通过LightBlue Bean和IFTTT自动化LIFX Lights 。
Johnny-Five Revamped!
Johnny-Five新版网站
Johnny-Five是一个常用于Arduino NodeBot开发的JavaScript编程框架。Johnny-Five的新版网站新增了大量的文档。 它所支持的设备也得到了不断的增加,并且基于它们的平台能够帮助开发者更好的通过JavaScript编写物联网应用。
相关资料
- Johnny-Five官方网站 :新版网站
- JavaScript Robotic Book :一本关于如何使用JavaScript编写机器人的书,作者主要来源于NodeBots社区,非常值得一读。
Paspberry Pi Zero (树莓派)
Raspberry Pi Zero(图片来源:Raspberry Pi Foundation)
最后,介绍一个较为新的也是目前比较流行的物联网设备,它提供了一些令JavaScript开发者兴奋的功能,它就是树莓派zero。 它只有Mdel A+ Pi的一半大小,但仍然拥有难以置信的速度和功率。由于树莓派设备普遍运行Linux,因此在它们上面运行Node服务器也就非常的常见。 树莓派zero提供了一个尽可能小的可以运行JavaScript的设备,在未来的几个月我敢肯定会带来更多令人印象深刻的创造。
相关资料
- 树莓派zero的产品页面 :官方的产品页,你可以查看相关的说明或者购买该产品。
- 使用JavaScript来将树莓派的摄像头通过流传输到VR 。
- JavaScript Robotics Book 。
总结
2015年对于JavaScript开发者而言有着非常多令人印象深刻的物联网设备,包括像Tessel这样直接使用JavaScript的设备, 以及像树莓派Zero这样可以间接使用JavaScript编程的设备。我想在2016年JavaScript开发者将会有更多的选择。 如果你是个JavaScript开发者,并且对于物联网社区并没有太深入的了解,你可以参考上面的技术。我相信, JavaScript将会比我们所能意识到的做到更多。最后,拥抱JavaScript社区吧!
来自: http://www.csdn.net/article/2015-12-29/2826575-javascript-beyond-the-web-in-2015