在各种IoT平台你争我夺的“大战”中,平台型企业或者初创物联网公司纷纷都在打磨着自己的IoT编程工具,前沿的一些已经初具雏形,尤其值得关注:
[[275423]]
这些举措对于物联网来说具有深远影响,他们都指向同一个方向:改进编程工具、简化编程环节、降低开发成本,是加速物联网项目落地的一条捷径。
由于在物联网时代,工具的选择尤为重要。当大部分人还拿着大刀长矛以原始姿势赤身肉搏时,率先发明火炮步枪,并掌握狙击方法的人想输都难。
既然IoT低代码编程工具已经出现,我们有必要将它仔细审视一番,掂量一下是否趁手。
因此在本文中你将看到:
1. 什么是IoT编程工具?
在互联网时代的IT软件世界中,有4个最核心的成员:
1970年,贝尔实验室的肯·汤普逊和丹尼斯·利奇开发出了世界第一个通用型计算机操作系统:Unix。
1985年,微软推出了第一版Windows操作系统。
Linux是一类Unix计算机操作系统的统称,公认在1991 年诞生。
目前在移动设备上广泛使用的Android操作系统,也是创建在Linux内核之上。
而编程语言的出现,在操作系统之前。
1952年,汇编语言Flow-Matic出现。汇编语言本质上是使用助记符来代替机器语言01010101,但这种语言对计算机硬件依赖很大。不同的计算机,汇编语言不相通。
1957年,世界上第一个高级编程语言FORTRAN问世,它使计算机语言从原始的低级汇编语言走到人人易懂的境界。
从此,计算机不再是科学家的专利。可以说FORTRAN的诞生,孕育了软件产业。此后,计算机高级编程语言进入蓬勃发展的时代。
由此,可以看出操作系统和编程语言的重要性不相伯仲。
到了物联网时代,操作系统发生了变化。
互联网时代,操作系统调度的是PC或者手机中的计算和存储资源。
物联网时代,操作系统进化为物联网平台,它对“物体”的调度过程,由调度“云、管、边、端”不同层级中不同设备的计算资源而实现。
比如RT-thread、Mindsphere、WISE-PaaS…都是物联网时代的操作系统。
下图是在微软眼中,物联网时代操作系统应当具备的能力:

相比于PC操作系统,物联网操作系统或者平台具有以下几个明显特性:
最近一系列基于微内核的IoT OS推出,比如阿里AliOS Things、华为鸿蒙OS、GoogleFuchisa,进一步诠释了物联网操作系统的特征。
微内核并非新鲜事物,最早可以追溯到卡内基梅隆大学在1985年推出的微内核操作系统 MACH。新一代的微内核IoT OS可以支持从小到大的各种智能设备,包括从烟感传感器、到摄像头、再到计算网关等;提供各种本地插件、轻量级GUI、以及丰富的链接协议,满足碎片化的设备开发的需求;还有丰富的云端一体化的插件,包括连云套件、OTA、视频语音连云套件,确保设备和云端的设备影子实时同步。
总而言之,基于微内核的物联网操作系统,有能力适配高度碎片化的硬件与芯片生态,有丰富的本地组件来支持不同的设备,又能够充分和云端的大数据计算能力形成协同,奠定了数字化物理世界的基础。
在互联网时代,操作系统几乎只需要支持PC和手机就可以完成任务。但是到了物联网时代,IoT操作系统或者IoT平台的复杂性急剧上升,为了令其更加易用,编程语言也需随之进化,IoT编程工具由此产生。
从操作系统到物联网平台,从编程语言到IoT编程工具,这是一个自然而然的推进过程。
可以预见,编译器和数据库在物联网时代也将产生更新或者变异。比如华为在8月31日刚刚开源的方舟编译器,以及涛思数据推出的时序数据库,都更加适合物联网时代的应用。

在物联网时代,上述这些工具都会进化,有些可能会彻底变成新的物种。IoT平台与PC操作系统有本质不同,IoT编程工具也与编程语言有着天壤之别。
因此,在物联网时代我们需要一个更加立体、分层和全局的视角,来看待关键领域。不管是操作系统,还是编程语言,都应建立一个全新的理解,从而发现新的机会,更好的利用工具,实现物联网业务的拓展。
2. 什么是低代码?
既然与PC操作系统相比,IoT平台的复杂性急剧上升,需要调度“云、管、边、端”各方资源、兼顾传感、姿势、语音等各种交互方式,又要保持5G、WiFi、BLE等连接随时在线…
那么,IoT编程工具的重要使命就是降低这种复杂度,让开发者可以轻松上手。因此“低代码”是大势所趋。
简单来说,“低代码开发”被用来描述一种快速设计和开发的软件系统,无需编码或通过少量代码,就可以快速生成应用程序。它是研究机构Forrester Research在2014年最先使用的一个术语。
其实低代码并不是最近才出现的新事物,它可以追溯到上个世纪90年代。
在1991年诞生的快速应用程序开发(Rapid Application Development,缩写:RAD),目标是在60到90天的短时间内,建立符合用户要求的业务软件。RAD的出现掀起了一场编程方式的革命,它带来了可视化编程,使得编程的门槛变低了。
根据Forrester的分析预测,低代码平台有可能使软件开发速度比传统方法快上10倍。到2022年,低代码平台市场将从现有的40亿美元,增长到220亿美元。
下面两幅图是使用低代码编程工具之前和之后的对比:
之前

之后

如果将“低代码开发”和汽车制造做类比,“低代码”之于IoT开发者就像自动化生产线对于汽车行业的作用。
过去汽车的装配需要手工完成,现在都是通过自动化生产线实现。虽然早期自动化进程中使用的生产线,对汽车复杂多变的配置无能为力,但它们确实加快了装配和交付的进程。
作为对比,现在的编程工作大部分还处于手工作业阶段,生产效率在很大程度上取决于编码者个人的专业技术水准,“低代码”尽量用少量的代码开发出企业级的应用,最大限度的提高应用开发的效率。
众所周知的低代码实例是WordPress,它是一款开源CMS(Content Management System,内容管理系统),特性是易上手,开发速度尤其快,甚至无需代码,直接安装模板和插件就可以达到要求。
使用WordPress,中小型企业只需雇佣一名不懂编程的员工,便可以借助网上发布的各种主题和插件,在完全不需要编程代码的情况下进行基本网站编辑。目前WordPress已经支持了世界上超过70%的网站。
至此,可以看到低代码具有如下优势:
任何事物都有两面,必须说明,低代码也存在使用风险:
任何技术都有利弊,越容易被创建,往往也意味着,越容易被复制。
而我们需要做的,就是权衡利弊,想好自己是否要用这个工具。
3. IoT低代码编程工具之间有什么差异?
总体而言,有两类公司在提供IoT低代码编程工具,分别是物联网平台型企业和应用服务初创型公司。
除了文初提到的阿里和微软,AWS、Google、Salesforce等巨头都有提供IoT低代码编程工具。
典型的低代码平台初创公司,除了被西门子收购的Mendix,比较知名的还有OutSystems、ServiceNow、Kony等。
市场研究机构Gartner和Forrester分别绘制了低代码平台的格局版图。

这两类公司由于各自目标不同,所提供的IoT低代码编程工具其侧重点也有所区别。
物联网平台型企业:这类企业的目标是降低物联网平台的应用门槛,汇聚开发者生态,因此往往提供的是端到端的IoT低代码编程工具或者开发环境。
以阿里云最近更新的IoT Studio为例,它是一套专为物联网应用所设计的集成开发环境IDE,功能包括:

以被西门子并购的Mendix为例,它本身是一个加速企业敏捷开发流程的PaaS平台,并自称是全球唯一一个真正的云原生低代码平台。
它由3个无缝集成的产品组成:Sprintr,AppFactory和Mendix Platform-as-a-Service,分别实现的功能如下:

被西门子收购之后,Mendix在最新的19版中增加了对于物联网设备的支持,并升级了AI引擎,提供对于物联网数据的分析服务。
----写在最后----
借助IoT低代码编程工具,让企业有机会尝试用更少的资源更快更好的实现应用。如果将其承载在工业大脑或者智慧城市的管理平台之上,势必将会激发各类应用开发者的创意和想法,让各类应用快速集成落地。
对于开发者数量有限的传统行业,IoT低代码编程工具还有可能加速IT和OT的融合。
当然,各种IoT低代码编程工具是否被宣传得恰如其分,是否在实践中方便使用,还需要经过验证。
本文小结: