物联网场景下为什么可以选择JS语言

简介: 本篇讲解一下IoT场景下JS语言的特性,让更多的JS开发者将自身能力发挥到IoT场景上。

> 来源 | HaaS技术社区

不看这几篇好文,就别说自己了解物联网

随着三星在2015年将IoT.js & JerryScript引擎开源之后,IoT场景同时也迎来了更多JS开发者,目前JS语言涉及的开发领域有:

  • Web网站:目前主流的Web网站由HTML5 + JS语言开发为主。
  • NodeJS服务:基于NodeJS可以开发各种后端服务
  • 移动开发基于浏览器引擎开发混合的移动端应用
  • 插件开发:可以开发VSCode编辑器插件

下面主要讲解一下IoT场景下JS语言的特性,让更多的JS开发者将自身能力发挥到IoT场景上。

开发门槛

目前主流的编程语言门槛排序如下 汇编 > C > C++ > Java > JS,而且最近几年随着浏览器引擎的大力发展,JS语言超级门槛的特性,吸引了一大批从业人员,比如拿国内开源Vue.js前端框架举例。

下图为Vue.js官网重点HighLight的三个特性,目前国内超过50%的前端开发者选择该框架

![image.png](https://ucc.alicdn.com/pic/developer-ecology/54dd48e4a76d45919cbb5fa373c4d6c5.png)

  • 入门门槛低:基于html模板,对熟悉html开发者的而言非常容易理解和学习
  • vue-cli脚手架:工程一键初始化/构建.简化了前端开发人员开发流程
  • 平滑集成:很容易在现有的工程中集成,且不会干扰原有工程逻辑.
  • vue对轻量级工程更加友好,快速,方便,一般3-5天就可以开发应用
  • 社区运营:vue尤其在国内运行的比其他前端框架做的要好

目前HaaS开发者框架将Vue.js框架适配到了IoT带屏设备上,具体快速上手可以见文档

应用热更新

热更新就是当你在开发环境修改代码后,不用刷新整个页面即可看到修改后的效果。

不同于传统嵌入式开发流程,JS应用在PC端开发完成后,无需编译、链接、固件烧录等繁琐步骤,用户可直接j将JS应用推送到设备上,且不需要重启设备就可以验证,达到应用热更新能力,该特性可以有效的降低IoT升级对OTA的依赖。

一般JS热更新分为本地热更新和在线热更新,下面拿HaaS 轻应用热更新举例。

本地热更新

![image.png](https://ucc.alicdn.com/pic/developer-ecology/f7c48ac1922548dcbd3f4d7c7554db10.png)

通过有线方式(串口)对设备的应用进行更新,可适用于设备无法联网或轻应用代码运行异常的情况。

下载模式

本地热更新与实际硬件的接线强相关,以 HaaS600开发板为例,需先切到下载模式

在线热更新

![image.png](https://ucc.alicdn.com/pic/developer-ecology/db84eb48c5f94108a11b91e7e5746db4.png)

通过无线方式(网络)对设备进行热更新。当设备不在本地或者设备无法跟电脑连接的时候,可以通过网络通道将轻应用代码下发到设备,类似OTA功能。

JS引擎

谷歌的V8引擎给JS语言带来了更多的现象空间,但是由于资源开销问题,一般在IoT低配置的设备上,不会选择V8引擎,下面介绍一下目前IoT上低资源开销的JS引擎。

JerryScript

  • RAM:< 64 KB RAM
  • ROM:< 240 KB
  • ES语法:全面支持ES5.1语法

Duktape

  • RAM:< 64 KB
  • ROM:< 400KB
  • ES语法:前面支持ES5.1语法,部分支持ES6语法

Quickjs

  • RAM:< 200KB
  • ROM:< 600KB
  • ES语法:支持ES5.1、ES6、ES2019、ES2020语法

下面为几种场景JS引擎的Benchmark对比

Engine

QuickJS

DukTape

JerryScript

V8 --jitless

V8 (JIT)

Executable size

620K

331K

211K

28M

28M

Richards

777

218

238

1036

29745

DeltaBlue

761

266

209

1143

65173

Crypto

1061

202

255

884

34215

RayTrace

915

484

286

2989

69781

EarleyBoyer

1417

620

-

4583

48254

RegExp

251

156

-

2142

7637

Splay

1641

1389

-

4303

26150

NavierStokes

1856

1003

394

1377

36766

Total score

(w/o RegExp)

1138

468

-

1886

41576

Total score

942

408

-

1916

33640

得分越高性能越好,从上面可以得出一个结论,IoT场景下如果设备硬件资源应许,quickjs引擎是一个不错的选择。

总结

JS语言在IoT上发展才几年,暂时还谈不上最适合IoT设备的开发语言,但是随着AI、IoT、云计算、大数据等技术的快速发展,和在众多产业中的垂直产业落地应用,AI与IoT在实际项目中的融合落地变得越来越多,使得多元化的智能设备也蓬勃发展,同时用户也需要更多个性化的更好的使用体验、更好的操作感受;JS语言在提升开发者的开发效率同时,最终让用户获得:“安全、简单、便捷、舒适的体验”。

更多精品好文


带你了解热门IoT开源项目:home assistant

如何用几行Python代码在物联网设备上实现语音AI自动识别?

物联网需要什么样的UI交互方式?

如何分析物联网设备问题,看懂这篇文章就够了

透过ALSA这层迷雾剖析AliOS Things音频框架设计

漫谈农业物联网与互联网技术的结合

传感器,物联网时代的智能硬件数字化入口

如何快速搭建一个像“天猫精灵”的智能语音助手?

物联网之IP Camera解决方案简介

从语音交互历史浅看它是否会是物联网行业的一个爆点?

带你走进多媒体世界:视频文件是怎么播放出来的

物联网云端一体AI方案的探索

物联网设备连接的下一个引爆点:4G Cat.1

物联网教育现状和前景

一文看懂蓝牙在物联网中的应用场景

下一个智能硬件爆品是什么?

华为、阿里、小米都在用的全屋智能技术

为什么物联网领域使用Rust的项目越来越多?

开源硬件的前世今生

物联网碎片化的一些思考

边缘计算在物联网行业的应用

物联网太难 ? 不妨试试用Python来开发

5G会给物联网行业带来哪些变化?

必须要了解的物联网安全知识

ARMv9能给ARM带来新一轮腾飞吗?(安全篇)

ARMv9能给ARM带来新一轮腾飞吗?(人工智能篇)

国产物联网操作系统的出路在哪里?

RISC-V架构能否引领物联网时代?

物联网到底为什么这么火?

谁才是物联网连接技术中的王者?

物联网平台大量出现能否将行业带入爆发式发展

脚本语言适合物联网开发吗

从“嵌入式”到“物联网”的四大转变

物联网发展新趋势

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2月前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
1月前
|
前端开发 JavaScript API
js实现promise常用场景使用示例
本文介绍JavaScript中Promise的6种常用场景:异步请求、定时器封装、并行执行、竞速操作、任务队列及与async/await结合使用,通过实用示例展示如何优雅处理异步逻辑,避免回调地狱,提升代码可读性与维护性。
218 10
|
8月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
466 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
8月前
|
缓存 自然语言处理 JavaScript
JavaScript中闭包详解+举例,闭包的各种实践场景:高级技巧与实用指南
闭包是JavaScript中不可或缺的部分,它不仅可以增强代码的可维护性,还能在模块化、回调处理等场景中发挥巨大作用。然而,闭包的强大也意味着需要谨慎使用,避免潜在的性能问题和内存泄漏。通过对闭包原理的深入理解以及在实际项目中的灵活应用,你将能够更加高效地编写出简洁且功能强大的代码。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
8月前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
传感器 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
在当今科技飞速发展的时代,新兴技术的涌现正在改变我们的生活和工作方式。本文将深入探讨区块链技术、物联网以及虚拟现实等新兴技术的发展趋势和应用场景。我们将从这些技术的本质出发,分析它们的发展现状,并展望未来可能带来的变革。同时,我们也将通过一些简单的代码示例,展示这些技术如何在实际中发挥作用。让我们一起探索这个充满无限可能的科技世界吧!
|
11月前
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
152 3
|
11月前
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
本文将探讨新兴技术的发展趋势和应用场景,包括区块链技术、物联网和虚拟现实等。我们将深入了解这些技术的发展现状,以及它们在未来可能带来的变革。同时,我们还将提供一些代码示例,以帮助读者更好地理解这些技术的应用。
|
供应链 物联网 区块链
新技术趋势与应用:探讨新兴技术如区块链、物联网、虚拟现实等的发展趋势和应用场景
随着科技的飞速发展,新兴技术如区块链、物联网、虚拟现实等正逐渐改变我们的生活和工作方式。本文将对这些技术的发展趋势和应用场景进行深入探讨,以期为读者提供更全面、更深入的了解。
|
传感器 监控 物联网
新技术趋势与应用:探讨新兴技术如物联网、虚拟现实等的发展趋势和应用场景###
本文探讨了物联网(IoT)与虚拟现实(VR)这两项新兴技术的快速发展及其在多个领域的应用场景。物联网通过设备互联、数据驱动和应用场景拓展,正在智能家居、智慧城市、工业自动化等方面带来革命性变化。虚拟现实则以其沉浸式体验和不断增强的交互性,在游戏娱乐、教育培训、医疗健康等领域展现出巨大潜力。结合具体案例分析,本文揭示了这些技术如何独立演进又相互融合,共同推动社会进步,并展望未来可能带来的变革。 ###

相关产品

  • 物联网平台