プログラミングの「は・て・な」

第1回 理想のコンピュータ×理想のプログラマ(?)
   〜流星号はマッハ15だからすごいんじゃない〜

長谷川裕行
2008/3/17

プログラムを作るとはどういうことなのか? そもそもプログラムとはどういうもので、われわれ開発者は何を目指し、考え、学ぶべきなのか? ハードもソフトも、そしてそれらを扱う社会システムも複雑化した現代、開発者にとって考えるべき問題はたくさんある。
そんなややこしい時代のややこしいお仕事について、肩肘張らずにさまざまな角度から考えてみたいと思う。しばしの間、おつき合いのほどを……。

前口上

 今やプログラミングは、コンポーネントと統合開発環境の時代。生産性は向上し、学習も楽にはなった。しかし、すべては巨大なブラックボックスと化し「計算機を制御する醍醐味」はどんどん希薄になっている。

 計算機の制御──これこそが、プログラミングの本質だったはずだ。とはいえ、この問題はなかなかに奥が深く、また、流行とは無縁のじみぃな世界である。真っ向から取り組もうとすると、堅苦しくておもしろくない。

 で、難しいことほど楽しく学ぶべきだと考えている僕は、この小難しくて退屈なテーマを、日常の失敗談や子供のころのテレビ番組など雑談を交えつつ、楽しく語ってみようと思ったのだ。

 最新技術のお話ではないから、今すぐ役立ちはしないだろう。でも、あなたが新しい技術の習得に悩んだり、バグの嵐に襲われたりしたとき、きっと役に立つはずだ。というか、役に立ってほしいな……。

本連載は、ソフトバンククリエイティブ刊行の『C MAGAZINE』に掲載された記事を、同社の許可を得て転載するものです。

なお、 Webでの連載として転載するに当たり、若干表現を変更している点があります(例えば「本書は」としている部分は「本連載は」としていることや図版などの省略など)。その点ご了承ください。

僕はジェッター♪

 突然だけど、「流星号」って知ってます? 30世紀の未来からやってきたタイムパトロール隊員ジェッターが、腕時計型の通信機に「流星号、応答せよ!」と呼びかけると、流線型のスマートなボディをくねらせてすっ飛んでくる陸海空万能車である。

 1965年……というから40年前(!)、TBS系列で放送されたテレビアニメ「スーパージェッター」は、眉村卓、筒井康隆、半村良、豊田有恒ら(当時)新進気鋭のSF作家を脚本担当に起用して大ヒットした。久松文夫の画で『週刊少年サンデー』(小学館)にも連載された。それまでは雑誌でヒットした漫画をアニメ化するのが常道だったが、テレビの企画が先にあって雑誌とタイアップする、というスタイルも斬新だった。

 さて、ジェッターの操る流星号だが、音声認識で呼び声に反応し無人で障害物を避けながらマッハ15で移動する。当然、コンピュータ(当時は「電子頭脳」と呼ばれてた)が搭載されていただろう。1000年先のメカである。相当インテリジェントなはずだ。

KITTは20世紀の流星号

 スーパージェッターの放送当時小学生だった僕はやがて大人になり、またしてもブラウン管の中で流星号に似た自動車に出会った。実写ドラマ「ナイトライダー」(1982年、米NBC制作。日本では1984年からテレビ朝日系で放映)のKITTである。

 主人公マイケル・ナイト(デビッド・ハッセルホフ。どことなく沖雅也に似ていた)の属するナイト財団が作った、人工知能搭載のスーパーカー「ナイト2000」(通称KITT──Knight Industry Two Thousand)だ。外観は(先端のピラピラ輝くセンサーを除けば)ごく普通のトランザムなのだが、マイケルが腕時計型通信機で呼びかけると、自動操縦ですっ飛んでくる。

 人と会話し、ときにはよけいなお節介まで焼く、どこか人間的なコンピュータ・カーだ。空を飛んだりはしないけれど(ときどきスーパージャンプはするが)まさに20世紀の流星号だった。

いくら賢くても彼らは『道具』

 流星号とKITTに共通するものは何だろう? スーパーパワー、かっこよさ、秘密の武器……などなど、いろいろ思いつくだろう。しかし、僕がいちばん心をひかれたのは、「人間の意思を受け取って適切に対処する機能」だった。

 ほかにも人間型ロボット(ヒューマノイド)が人間と意思疎通するお話は、いくつもあった(たとえば「鉄腕アトム」とか)。が、流星号やKITTは自動車──いかにも「機械」という外観である。そいつが人間の言葉を理解する──KITTはおしゃべりするし、ときにはジョークもいう──のだ。外観が外観だけに、いやでもその中に隠された頭脳──コンピュータを意識してしまう。

 両者に共通しているのは、「自分の判断で動きはするけれど、最後には人間(ジェッターやマイケル)がハンドルを握って操縦し、意のままに操られる」というところだ。賢いけれど、あくまで機械であり人間に使われる『道具』という位置づけなのである。

夢のコンピュータ社会……ってか?!

 僕がコンピュータにかかわり始めたのは、ちょうど「ナイトライダー」が放送されていたころだった。1980年代半ば、世の中はバブル景気で浮かれ、コンピュータを導入すれば夢のような社会がやってくると、かなり本気で信じられていたものだ。

 単純作業は全部コンピュータが片づけてくれるから、人間は人間にしかできないクリエイティブな仕事をすればいい。紙の書類がなくなって資源のムダも防げる。そんなこともいわれていた。

 だが、実際には、電子データと紙の伝票が混在して事務は複雑さを増し、コンピュータでは出力されないデータを電卓とボールペンを使って手作業で作らなければならず、肝心のコンピュータは入力リストだのナンだのとよけいなデータを印刷して紙をムダ遣い……と、かえってめんどうなことになっちまっていた。

 特に大がかりなシステムでは、末端の現場で必要なデータが得られないものが多かった。システムを設計した本社の上層部は「これは全社的なシステムなのだから、そんな枝葉末節の処理は現場で自力解決しなさい」ってないい逃れをし、おかげで全国あちこちの支社に似たような表計算のワークシートが散在する羽目となった(それで表計算ソフトの扱いを覚えた人も少なくないと思うが)。

UIに対するこだわりのルーツ

 ある会社で現場に近いところにいた僕は、日々データを入力し、その結果をお客さんや取引先とのやりとりに生かせることがもっとも重要だと考えていた。そこで、BASIC(ちっともVisualでないヤツね)で現場向けのソフトを作ってあちこちに配った。思えば、それがこの世界に入るきっかけだった。

 BASICに限界を感じてCOBOLとデータベースを学んだころ、作業環境は汎用機+オフコンからパソコンに変わり、DOSを使えるようになった。そこで、今度はC言語とアセンブリ言語を身につけた。

 そしていつしか、本社の情報通信部門に、ユーザインタフェイスやデータ形式に対する「いちゃもん」をつける生意気な社員になっていた。

 しかし、いくら文句をいっても僕は所詮現場の人間。設計担当者と話をしてもまったくらちがあかない。僕の作ったアプリケーションは現場では喜んでもらえたが、本社から「よけいなことをしないように」とやんわり釘を刺されたりした。本社では、本社に必要なデータを吸い上げるためにプログラムを作っていたのだ。この時代の経験が、僕にユーザインタフェイス(UI)に対するこだわりを植えつけたのだと思う。

貴重な資源の節約が先決  
自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。