IoT分野で使われているプログラミング言語
「Canonical」はIoT分野での「Ubuntu」の展開に力を入れており、同社にとって重要な事業の柱となっています。IoT分野で「Canonical」や「Ubuntu」といった名称を目にする機会が多いかと思います。
IoTとは「Internet of Things」のことで、スマート家電やドローンなどインターネット等のネットワークを経由して情報のやり取りをするデバイスがIoTに該当します。
さて「Ubuntu insight」にて、IoT開発者調査結果の概略と考察が紹介されています。
IoT開発者調査
今回行われた調査は、「Eclipse IoT」主催による第三次IoT開発者調査です。この調査の目的はIoT開発者の現状を分析し、IoT分野のトレンドや状況、そして傾向を把握することです。
第三次とあるようにIoT開発者調査は、2015年から毎年行われています。
今回の調査は2017年2月7日〜2017年3月17日まで行われ、IoT開発者が任意でアンケートに参加し、713件の回答を得ました。
アンケートには、例えば「73%の人々がIoTの開発にLinuxを利用していることを知っていますか?」といった質問が並びます。
早い話、意識調査ですね。
調査結果
調査結果は、以下で公表されています。IoT開発全体で使用されているプログラミング言語の割合
IoT開発全体で使用されているプログラミング言語の割合は、1位がJavaで60.9%、2位がC言語で60.5%、3位がC++で48.0%となっています。Node.jsのような比較的新しい言語よりも、従来からある言語の方が広く採用されています。
これはデバイスによっては10年間のサポートを必要とするものがあり、多数のC言語やJavaライブラリーの再利用なしにIoT開発を行うことは非常に困難であり、その状況が数値に現れているのではないか、とのことです。
10年前と言えば2007年です。
2007年当時存在していなかった、まだ十分なノウハウが蓄積されていなかった、登場していたがIoTにはまだ不向きだった言語もあるでしょう。
例えばNode.jsが登場したのは2009年です。
ただ今後はJavaScriptやPythonの成長を見るに、これらの言語が伸びていくのではないかとのことです。
IoTジャンル別プログラミング言語の割合
IoTと一口に言っても、組み込みだったりクラウドだったりと様々なジャンルがあります。開発のターゲットにより、ハードウェアや環境の制約が大きく異なります。
ここでは以下のジャンル別に、プログラミング言語の割合を見てみましょう。
- 組み込み(ハードウェアに制約があるデバイス)
- IoTゲートウェイ
- IoTクラウド
1.組み込み(ハードウェアに制約があるデバイス)
1位がC言語で56.4%、2位がC++で38.3%、3位がJavaで21.2%となっています。CPUやメモリーに制約があるためでしょうか、C言語やC++が多く採用されています。
ただ上記で記述したように、ハードウェアの性能向上と共に言語の利用傾向も変わっていくかもしれません。
2.IoTゲートウェイ
1位がJavaで56.4%、2位がCで30.4%、3位がPythonで29.9%となっています。Pythonが台頭してきましたね。
3.IoTクラウド
1位がJavaで46.3%、2位がJavaScriptで33.6%、3位がNode.jsで26.3%となっています。他のジャンルとは傾向が大きく異なります。
JavaScriptやPythonといったスクリプト言語が大きく伸びています。
IoT開発全体で使用されているLinuxディストリビューションの割合
おまけです。IoT開発全体で使用されているLinuxディストリビューションの割合も公開されています。
RaspbianやUbuntu/Ubuntu Coreが広く利用されていますね。
IoT開発者やIoT分野に興味のある人は、IoT開発者調査の結果に目を通してみてはいかがでしょうか。