Raspberry Piはプログラミングの敷居が高いのか?

--次にソフトウェア環境についてお伺いします。たとえば私はLinuxのインストールとかメンテナンスの経験があるので、Raspberry Piは非常に容易に扱えます。ですが、Raspberry Piのターゲットは、これからプログラミングを学ぼうという学生とかになっていますよね?。元々Raspberry PiはSinclair ZX81の様な位置づけを考えておられたと思うのですが、Sinclairは能力は限られる分、プログラミングは非常に容易でした。ですがRaspberry PiではLinuxのインストールにまつわる諸々がある分、やや敷居は高くなっていませんか?

あー、それに関しては後日発表するのだが、NOOBS(New Out Of Box Software)というものを用意している。これは従来より遥かに容易にインストールできるものだ。これを使うとDisk ImageをSDカードに簡単に作れるようになる。もちろん従来のLinuxを使うこともできる。

NOOBSはPCにおけるリカバリパーティションのようなものだ。OSを圧縮した状態で格納してあって、最初の起動の時にSDカードから簡単にインストール出来るようになっている。だからNOOBSを格納したSDカードを入れてブートすればメニューが出てきて、そこからMedia CenterでもRaspbianでもRISC OSでもOpenELECでも、どれでもOKだ。そうしたOSのイメージを圧縮して格納してあるから、すぐにそこからインストールできる。

もし何かの理由で(InstallしたRaspberry Piの)ファイルシステムが壊れた場合、シフトを押しながら起動すればリカバリーメニューが出てきて、そこからファイルシステムの復元が可能だ。これは大きなニュースという訳ではないが、Raspberry Piをずっと簡単に使えるようになる。これはプラットフォームの使い勝手を改善する大きなステップだ。

--もう1つ、たとえばArduinoやmbedなどはC言語ベースのIDE環境が提供されていて、ProgrammingだけでなくCompilingも非常に容易です。これに比べると、Raspberry PiはいわばベアボーンのLinux環境で、初心者にはちょっと敷居が高いように思うのですが?

たしかに難しい面があることは認める。Arduinoはケーブルを繋ぐだけで使えるからね。特にRaspberry Piの場合、プログラム言語はPythonだしね。ただRPi.GPIOをimportすればGPIOが使えるあたりはArduinoとそう変わらないし、キーボードとマウスをつなげればすぐに使えるあたりはArduinoよりも簡単だ。ある面を簡単にすれば、ある面が難しくなるのはトレードオフの関係だ。

--確かにそうです。特にArduinoはDebuggerがないので、USB経由でprintf debuggingが必須です。ただmbedはfullscreen debuggerが用意されています。

確かにmbedは非常に良い。私もmbedのdebuggerは好きだよ。

--そうした良いデバッグ環境は、特にビギナーには重要ではないですか?

問題はそれを用意するためにはお金がかかる事だな(笑)。特に子供向けに、簡単に使えるProgramming toolやDebugging toolが揃う様な環境を作っていくことは、これからの我々の仕事だ。

--さらにもう1つ。現在GPIOのコントロールはPythonからのみになってますが、ほかの言語でもそうした環境は?

いやいや、Pythonだけでなく、たとえばSmalltaikからも可能だ。どんな言語でも間にShell Scriptを挟むことで対応できる。私はCとPythonを使うのが好きだがね。最近だとScratchは非常にエキサイティングだよね。これらを使って、コントローラやセンサや、なんでも使う事が出来る。もちろんArduinoでも同じ事が出来るけどね。GPIOを含め色んなI/Fが搭載されている。そうしたすべての事を、Raspberry Piでも実現できる。