摘要:HAAS的“轻应用”一直深受开发者的关注,采用JavaScript开发物联网应用的确简单不少。最近,HAAS团队又发布了python“轻应用”,这种方式又支持了python开发物联网应用,使HAAS的开发途径进一步丰富。两种“轻应用”有什么区别?哪种更厉害?带着这种疑问,本文为您一一道来。
一、什么是python轻应用
2020年发布的HAAS100开发板,随着“轻应用”的发布,迅速在开发者中掀起学习热潮。
“轻应用”(amp,AliOS Things Mini Program),是一种将常见编程引擎安装到HAAS硬件平台的技术。
采用“轻应用”,可以使开发者以极简的高级语言语句,实现以前复杂的物联网硬件功能。
HAAS初期推出的JavaScript轻应用支持js语言开发。例如用下面的几行代码,就可以实现GPIO的初始化和指定LED的闪烁。
var gpio = require('gpio');
var led3 = gpio.open({
id: 'LED3',
success: function() {
console.log('gpio: open led success')
},
fail: function() {
console.log('gpio: open led failed')
}
});
var vol = 0;
setInterval(function() {
vol = 1 - vol;
led3.writeValue(vol);
console.log('led set value ' + vol);
}, 1000);
上述几行代码,实现了C语言开发中的GPIO初始化、串口初始化、LED引脚控制和串口信息打印等上百行代码才能实现的功能。
那么什么是python轻应用呢?
顾名思义,就是可以支持python语言来开发。不过不是完全的python,而是“定制”的python,有些地方还是与python不一致的。
它用的是micropython
根据官方帮助文档的许可证,可以看到是MIT许可,copyright是Damien P. George和其他人。
MicroPython 编程语言由英国剑桥大学应用数学和理论物理系的 Damien P. George教授及其团队发明在 2013 年创建并发布,该语言技术已获 MIT 许可(MIT 可以说是最宽松的开源许可,用户可以任意复制使用)。该团队已在 MicroPython 官方网站(http://www.micropython.org/)中声明 MicroPython 完全开源自由使用,允许所有组织和个人可以将MicroPython 用于个人使用、 教育及商业用途, 并且将所有技术资料在 GitHub(https://github.com/micropython/micropython)开源以供传播推广使用。自2013年发布以来已经有接1.2万个Star关注(2021年3月数据)。
二、phthon轻应用和python有什么区别?
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python简单易学、高度精炼、可扩展性好,应用范围特别广, 已经成为最受欢迎的程序设计语言之一。它能够在计算机上运行。
而python轻应用呢?其核心是micropython,然后就是为HAAS定制了一些专门库。它能够在嵌入式系统上运行。
有了这些定制库,就可以实现用python语言来实现上图所示的这些功能。
由此可见 python和micropython之间的区别就相当于专业版和嵌入式版本之间的区别(当年window xp系统也有嵌入式版本)。
三、python轻应用和JavaScript轻应用有什么异同?
HAAS团队先后推出了两种轻应用,JavaScript轻应用在前,python轻应用在后,后者的推出并不是要取代前者,更多的是想突出各自不同的优势,兼顾不同的用户群体。
我在两块板子上分别烧录了不同的固件,对两种轻应用都进行了测试,个人体会有如下几点:
相同之处:
1.都是引入了一种高级语言的引擎。高级语言的好处是精炼,开发简便。用户可以专注于开发物联网功能,底层硬件处理可以交给引擎调度。
2.编程的代码行数都很少。不用像C一样,一个硬件初始化就需要几十行代码,错一个字就可能使整个程序无法执行;采用高级语言,一行代码即可实现复杂的功能,还不容易出错。
3.都可以通过串口逐行发送至开发板。两种轻应用都可以通过串口工具,以交互的方式,逐行将代码发送至开发板来执行。
不同之处:
1.开发语言不同。两种语言各有千秋,照顾到不同习惯群体。
2.源代码形式不同。JavaScript轻应用开发时需要两个文件(js和json),而python轻应用则只需要一个py文件。
3.烧录程序的方式不同。JavaScript轻应用通过amp命令行将文件“传送”至开发板,就自动保存,下次断电重启自动执行;python轻应用则通过将py文件拷贝至SD卡,再通过串口发送执行命令来执行。
四、python轻应用有什么优势?
python有什么优势python轻应用就有什么优势。
人工智能程序都是python来实现的。
python轻应用也提供了人工智能的支持。它可以用极简的代码,实现阿里云达摩院几百种人工智能算法的调用。
可以说,python轻应用提供了HAAS开发板与人工智能云计算的连接桥梁。
有云,谁还用自己的计算能力呢?