IoT開発をはじめるのにお勧めなプログラミング言語

IoTプロジェクトを進めるにあたって、システム開発は欠かせない要素になるでしょう。そんな時、どのプログラミング言語で開発を始めるかは後々に大きな影響を与えます。

今回はRaspberry Piにおけるお勧めプログラミング言語を紹介します。これからIoTプロジェクト開発をはじめる際の一助にしてください。

Python

Raspberry Piの公式OSであるRaspbinではPython2.7系と3.x系があらかじめインストールされています。そのため、環境のセットアップ不要で使えるのが一つの利点になります。

また、センサーのライブラリがPython向けに開発されているのもお勧めできる点です。元々Raspberry PiもPythonも教育用途から発展した点も似ています。IoTのプログラミングする場合はWEB上のドキュメントも豊富に揃っています。

Node.js

Node.jsは残念ながら標準ではインストールされていません。そのため、自分でインストールする必要があります。Node.js向けのライブラリもPythonに通じて多く、開発時に困ることは多くないでしょう。

Node.jsの利点として、JavaScriptのイベント駆動な開発が行える点が挙げられます。IoTでよくある、データが更新されたり、人がスイッチを押したタイミングで処理を行うと言ったイベントを購読した開発が可能です。

C/C++

初期のプロトタイプにおいてはスクリプト言語で行うことで、高速なトライアンドエラーを繰り返せるというメリットがあります。しかし製品化する際にはなるべく小さなフットプリントで実行できるものを望まれます。そうした時にCやC++は選択肢に上がってくるでしょう。

もちろん最初からCなどを選んでも良いですが、コンパイルしたり、テストやデバッグを進める際には若干手間に感じられてしまいます。また、開発環境と実行環境のCPUをはじめとするアーキテクチャの違いにも考慮が必要です。

Go

同じコンパイル系の言語であってもGoは各種アーキテクチャ向けにコンパイルできる点が利点です。また、CやC++ほど低級言語ではないので、開発効率は高い言語と言えるでしょう。

一般的なIoTのプロトタイピングでは、大抵の場合利用するセンサーやアクチュエータの専用ライブラリが存在します。しかしGoではライブラリがPythonやNode.jsほど充実していません。そのため、自作したり汎用的なI2Cライブラリなどをベースに開発する必要があるでしょう。

まとめ

多くの場合、PythonやNode.jsでプロトタイプ開発を行って、そのまま製品化するかCやC++で本番開発を行うケースが多いようです。大事なのは自分たちが使おうとしているセンサーのライブラリがあるかどうかです。例えば数年前においては、Bluetooth系のライブラリではNode.jsが最も安定して使えました。他の言語では実装しづらかったり、イベント駆動型の開発が困難だったため選択肢に上がりづらかったです(現在は改善しているかも知れません)。

また、標準環境で利用できるかどうかも大きな要点になります。IoTではデバイスを多数セットアップする必要があります。そんな時に都度実行環境のインストールを行うのは手間です。Pythonであればデフォルトでインストールされていますので、セットアップの手間が大幅に軽減されるはずです。

おわりに

これからプログラミングを覚えるついでに、IoTも興味があって学んでみたい方にはぜひIoTエンジニア養成キットで学習してみてください。

]]>

上部へスクロール