家電プログラミング


子どもたちがOSS活動、プログラミング言語「Scratch」が開く未来 − @IT

創造的な社会へ向けて

 Scratchに限らずプログラミング言語インターフェイスを用意すれば、
エアコンやテレビ、HDDレコーダーといった家電を自由に操作することができる。
現在、そうした手段が提供されていないのは技術的制約というよりも、
「一般ユーザーにはプログラミングができない」という暗黙の前提があるからに過ぎない。
子ども時代にScratchのような環境でプログラミングの概念を学んだ子どもが成長し、
ユーザーの大半となれば、HDDレコーダーの足りない機能を
自分で実装したいと考える人が増えるかもしれない。
そうなればケイ博士がいうように誰もが何らかの
プログラミングをする時代がやってくるだろう。
レズニック教授はいう。
「物理的な世界であろうと仮想的な世界であろうと、
ありのままのものを使うだけでなく、
次の世代の子どもたちには自分たちを取り巻く世界を
コントロールできるようになってほしい。
そうすることで、未来の偉大な思想家や開発者が
創造的な社会を作っていく下地ができてくるのだと思います」。

たしかに創造的な社会だけど
家電業界に身を置く者として言わせてもらうと
”家電の状況が今後変わらない限り”これはちょっとありえない。
未来を否定している気持ちではなくて、創造的な社会の実現は
家電業界がどれだけ変われるか、にかかっている。


いまの家電について
「一般ユーザーにはプログラミングができない」というのはちょっと違って
「プログラミングができたくらいでは開発できない」というのが自分の認識。
一般ユーザをなめて言っているんじゃなくて
家電のソフトは本当に「壮絶」なのだ。
うまく動かないときは、ロジアナでハードウェアの信号をひっぱりだして調べたり
RTLシミュレーションをしてチップの中の動作を解析したり
しないといけないこともある。
綱渡り的なメモリ帯域制御がはいっていて
DMAをあと1回増やすと処理が破綻する、とか
レジスタ制御が数us(マイクロ秒)変わると動かない、とか
仕様書のとおりにコードを書くと動かないから
動くパターンをみつけてなんとか動いてるみたいだけど
実際のところどう動いてるかよくかわからない、とか。
プログラムコードの配置が1バイト変わるだけでも
もうどうなるかわからない。


プログラミングしかしていない人には
本当に想像もつかない世界だと思う。
一般のプログラマをなめてるんじゃない。
家電のソフトは、技術的制約の塊で
ソフトは「ハードウェアのバグを隠すパッチの集合」といっても
言い過ぎてないと思っている。
それが家電のソフトの現状。


現状を正しく認識してはじめて、未来との距離が測れる。
創造的な社会になってほしい、という願いをこめて。