当JS遇上IOT

凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript ——Atwood定律

对前端有兴趣或者正在学习web前端的小伙伴,可以私信小编【学习】即可免费领取2018最新的一整套系统web前端学习教程!

什么是IOT

我们总说IOT,那到底什么是IOT?IOT是Internet of Things的缩写,字面翻译是“物体组成的因特网”,准确的翻译应该为“物联网”。物联网(Internet of Things)又称传感网,简要讲就是互联网从人向物的延伸。

其实物联网可以从两个方向进行拆分,即由“物”向“网”,或者是由“网”向“物”。由物向网可以理解为人跨越空间和自身条件的局限对物体进行感知的过程。由“网”向“物”是人跨越空间对物体进行控制的过程。

IoT应用开发平台简介

在IoT应用开发领域中,大家熟知的开发平台主要有如下几类:

  • 嵌入式操作系统,包括VxWorks、FreeRTOS、LiteOS等;极客硬件平台,包括树莓派、Arduino等;JavaScript IoT应用开发平台,包括Ruff、Tessel、JerryScript、Johnny-Five等。

嵌入式操作系统,从功能的角度上来说,能够满足目前的绝大多数需求。但是:

  • 其入门门槛极高,开发者想要成为优秀的嵌入式开发工程师,需要学习大量软硬件知识。相较于软件行业,嵌入式领域的人才数量受到了限制。嵌入式领域在开发方法上已经大幅度落后于整个行业的发展。敏捷软件开发方法以及精益创业的理念,受到工具所限,在嵌入式领域极少得到应用,所以该领域在工程方法上发展缓慢。这些操作系统的编程概念通常属于专用领域,所以知识很难在行业中共享,开发者在行业中流动也相对困难,造成的结果是,嵌入式领域对于现代软件开发理念的理解也整体上落后于软件行业。

极客硬件平台,其初衷是降低开发门槛,让更多开发者得以进入到硬件开发领域中。但是:

  • 它只是在操作方面的入门难度上在努力,而开发真正困难的部分在编程概念。对于大多数软件开发者而言,难点在于硬件中的编程概念。各种各样的接口及参数,这是软件开发者难于理解和掌握的。更关键的因素是,这些平台只解决了原型开发的问题。开发者即便能够通过它实现了一个产品原型,也很难将它用到真正的产品中。应用到产品中,往往要重新设计硬件,这些平台的优势就荡然无存了。

二者最本质的复杂度在于其编程模型,对于软件开发者来说,GPIO、I2C之类硬件接口完全是另一种语言,除了要了解接口的编程方法,还要针对每个硬件,阅读其数据手册,了解参数细节。

目前为止,诸位会想,IoT行业对软件工程师简直犹如另一个世界,一点都不友好。是的,很多人都是这么想的,于是,有人想用更高级的语言改变这个世界,这其中最为活跃的便是JavaScript社区。

JavaScript IoT应用开发平台

JavaScript IoT应用开发平台,其建设初衷是让开发者能够用JavaScript开发IoT应用,一方面可以更好地构建抽象,另一方面,可以将比较现代的开发方式引入到硬件研发中。JavaScript IoT应用开发平台目前主要分为几大类:

  • 在硬件上运行JavaScript,如JerryScript、Espruino等;提供硬件抽象能力,比如Tessel、Johnny-Five、Cylon.js等;面向生产的能力,如Ruff。

Ruff的优势

Ruff与Arduino相比更贴近网络,由于Arduino的诞生较早,标准开发板并没有网络通信方式,虽然可以通过扩展的形式添加,但是上手略微复杂。而Ruff天生支持Wifi通信,使用Ruff进行http通信和使用普通nodejs的http通信方式没有什么区别,上手极为简单。当然,由于Arduino发布较早,而且一开始就为模块化开发设计,感觉Arduino的第三发模块相对简单,就像搭积木一样一层层安装即可,而ruff的硬件模块相对较少,生态和Arduino相比不是那么成熟完善。

对前端有兴趣或者正在学习web前端的小伙伴,可以私信小编【学习】即可免费领取2018最新的一整套系统web前端学习教程!

当JS遇上IOT


分享到:


相關文章: