普段意識しない常識
受話器は耳につけて話をする機械ですよね。キーボードは手の指で叩きますね。当たり前のようですが、「なぜ?」と考えることはあまりないものです。
――なぜ、受話器は耳につけるのでしょうか?
それは音は耳で聞くからです。
――なぜキーボードは手の指で叩くのでしょうか?
それはたくさんのボタンを叩くのに手の指が一番都合がいいからです。
極々当たり前の答えが出ました。ほぼこれは人間という生物の絶対常識と呼んでいいと思います。当たり前だからこそ、普段そんなに考えることはないんですね。
前回、世界のどこに行っても変わらない常識を「絶対常識」と呼ぶことにしました。1+1=2などがそうです。絶対常識には、数学的、物理的、生物的、歴史的など、いくつかのカテゴリーがありそうです。ここでは生物的な視点からエンジニアの役割を考えてみたいと思います。
エンジニアと五感
ここでいう生物とは……。そうです、人間です。人間の体の構造は、概ね共通の要素があります。この絶対常識的要素が強い事実を前提にすればいい機器ができそうです。
五感は人間の根源的な機能です。視覚、聴覚、触覚、嗅覚、味覚。このすばらしい生物センサーをITに使うことはできないでしょうか。
馴染み深い例として、読者のみなさんの多くが普段やっている「デバッグ作業」を取り上げてみたいと思います。
視覚
通常、これに頼りっきりですね。ソースを目で見て判断をします。
触覚
低周波治療器をPCに接続して、ピクピク感でデバッグするのはどうでしょう? ブレークポイントならぬピクピクポイントをソースに設定すると、電気が流れてピクっとくる仕組みです。みんなで体をピクピクさせてる職場、これは面白そうですね。でもハード設備が大変そうです。
嗅覚
「どうもこの関数がクセ~な」。バグの潜んでいそうな関数からニオイが発せられたら面白いですね。しかし、ピクピクより装置が大変そうです。
味覚
「しょっぱいプログラムだな~」。プログラムソースによって味が違うのです。「このソースは○○味だな」という会話が中高年エンジニアの方にはウケそうですね。でも技術的に厳しそうです。
聴覚
残るは聴覚です。パソコンにはスピーカーやヘッドフォンジャックがすでに付いているので、これは現実的ですね。ブレークポイントでプログラムを停止させて視覚で確認する代わりに、スピーカーから音を鳴らして聴覚で確認するのです。Beep命令を一行入れて、そこを通るたびに「ピッ」と鳴るのはどうでしょう?
これはイケそうです。
ブレークさせなくても、音が鳴ればそこを通過したことが確認できます。複雑な条件分岐のデバッグで使えそうです。負荷の重い処理のチューニングにも使えそうです。「ピピッ………ピ」なら、最初と2番目のBeepの間の処理は比較的軽く、2番目と3番目の間の処理が重そうだと分かります。「ビ~~~~~~」だと、ループが激しく回っていることが分かります。
筆者は20年以上、聴覚デバッグを実際に活用しています。たまに「うるさい」と怒られますが、一度この直感的な方法を知ってしまうとやめられません。