从 2015 年起至今,Eclipse 基金会每年会通过 IoT 开发者调查报告(2015、2016)来研究 IoT 开发者社区的发展趋势。近期,Eclipse 正式发布 2017 年 IoT 开发者调查报告,与大家共同探索物联网的解决方案。

该调查组由 Eclipse IoT 工作组、IEEE、Agile-IoT EU 和 IoT 委员会共同组成,此次共有 713 位开发者参加了调查。

主要趋势

1. 物联网产业多样化

今年调查参与者来自更加多样化的行业。其中 IoT 平台和家庭自动化行业继续领先,同时诸如工业自动化、智慧城市、能源管理等行业相比去年,增长速度很快。

2. 安全问题仍是重头戏

安全问题仍是众多 IoT 开发者关注的重点,占比高达 46.7%。接而协同性(24.4%)和连接性(21.4%)位居其次。但从下图中,我们也发现相比 2015 年的协同性(30.7%)和 2016 的协同性(29.4%)而言,今年开发者对这方面关注似乎呈下降趋势,同时这表明行业的标准和物联网中间件起到了一定作用。

今年主要用于物联网安全解决方案的技术是占比 48.3% 的通信安全(TLS、DTLS)和 43.2% 的数据加密。此外,面向硬件的安全解决方案似乎不太受欢迎,如使用可信平台模块(10%)、硬件安全模块(10.6%)。

3. IoT 编程语言抉择

Java 和 C 是主流的 IoT 编程语言,此外还有 C ++、Python 和 JavaScript。今年根据调查发现,开发者使用什么样的语言取决于物联网具体类型,如受限的设备、IoT 网关和 IoT 云平台。根据这些类别,语言的抉择取决于软件开发的目标:

  • 在受限制的设备上,C(56.4%)和 C ++(38.3%)成为主流开发语言。 其次是 Java(21.2%)和 Python(20.8%),最后是 JavaScript(10.3%)使用最少。

  • 开发 IoT 网关,选择的语言更加多样化,其中 Java(40.8%)、C(30.4%)、Python(29.9%)、C ++(28.1%)。JavaScript 和 Node.js 偶尔会使用。

  • 基于 IoT 云平台开发,Java(46.3%)排第一,其次是 JavaScript(33.6%)、Node.js(26.3%)和 Python(26.2%)。并不惊讶 C(7.3%)和 C ++(11.6%)使用量显着下降。

总体而言,IoT 解决方案开发需要多种语言的编程技能。具体语言对应具体场景应用。

4. 主流操作系统为 Linux ,Raspbian 和 Ubuntu 位居一二

Linux 仍然是 IoT 的主要操作系统。受限设备中, Linux 占44.1%,在 IoT 网关上,Linux 占 66.9%。

Linux 发行版中 Raspbian(45.5%)和 Ubuntu(44.%)使用率位居一二。

如果 Linux 是 IoT 的主要操作系统,那么是否有替代的 IoT 操作系统?今年,Windows 有了大幅提升,此外 FreeRTOS 和 Contiki 的使用也在增长。

5. 亚马逊、微软、谷歌成为热门 IoT 云平台

亚马逊(42.7%)继续成为领先的 IoT 云平台,其次是 Microsoft Azure(26.7%)和 Google 云平台(20.4%)。今年一个重大变化是私人/内部部署云的使用量下降,从 2016 年的 34.9% 下降到 2017 年的 18.4%。这意味着 IoT 云平台现在已经更加成熟。

6. 蓝牙、LPWAN 协议和 6LowPAN 使用率增加

对于过去的三年中,TCP/IP 和 Wi-Fi 一直是开发者最受欢迎的连接协议。然而,更多的连接协议及技术出现,基于 2017 年的数据,物联网开发者社区采用了蓝牙/智能蓝牙(48.2%)、LPWAN技术(LoRa、Sigfox、LTE-M)(22.4%)和 6LoWPAN(21.4%)。不过,Thread(6.4%)的使用率仍然较低。

总结

调查结果显示了 IoT 开发人员的一些常见模式。此外报告也涵盖了常见的物联网硬件架构、IDE 使用情况、采用的 IoT 标准,开源的 IoT 等等。