愛されるソフトウェア

朝早くから,英文添削室に行ったり,メールを出したり,書類を書いたり,私の同僚の論文にコメントしたり,GW停電に備えてマシンを停止したり,もう目が回るくらいの用事を短時間でこなしてから,若手のテーマ企画発表会のために数時間かけて横須賀へ(←これが「東洋学へのコンピュータ利用第16回研究セミナー」の予稿集の代償なのだ).

その場で,私がアドバイザをしている若手の指導者から,「愛されるソフトウェア」という言葉が出てきた.まあ,彼は彼自身も開発に関与しているEmacsのことを意図しているのだろうが,彼によれば,最初は取っつきやすいが,慣れてくると高度な使いこなしもできるようなソフトという意味らしい.

ソフトウェアが愛されるための条件というのは,他にもいろいろ考えられるかもしれない.たとえば,必ずしもEmacsのように何でもできるような高機能さがなくて低機能でもありではないかと思う.Unixでは,各コマンドができる限り単純に作られていて,私からするとawksedgrepも愛すべきツールだ.彼の言葉は,次のようにも言えるかもしれない.

  • ソフトウェアが直感的なこと.
  • ソフトウェアが協調的なこと.

前者はいろいろな意味を含む.たとえば,目的を達成する方法やできないことがわかりやすいとか,黙って何をしているかわからない状態にならないとか,ユーザをうまく支援してくれるとか,余計な入力変換をしない(苦笑)とか,変なバグがない(苦笑)などなど.

後者では,たとえば,Emacsの高機能さは,Unixコマンドとの巧妙な連携に支えられていることでわかるかもしれない.他のプログラムとうまく連携しているとか,業界標準フォーマットをサポートしていると,そのソフトウェア自身が提供する機能が減るかもしれないが,提供する世界は大幅に広がり,しかもユーザにとって親しみやすいものになるはずだ.

逆に,「愛されないソフトウェア」を考えた時に,すぐに思いつくのはMS Office(苦笑) あれは,機能は沢山あるのだが,閉鎖的なことを独占の決め手にしているし,予測できない動作が多すぎて,余計な労力を使う.あまりに複雑で予測外の動作が多いために,オフィスの新しいバージョンは怖くてリリース直後にすぐ使いたくないと言っているMS社員もいるくらいだ.アンケートを採ってみれば,「よく使うツール」だけど「嫌いなツール」のトップにくるのでは?という気がする.

しかし,実は昔はそうでもなかった時代もあったのだ.たとえば,Macに関してだが,次の記事があるくらいだ.

http://hotwired.goo.ne.jp/news/news/technology/story/20040621303.html

やはり,どこかで道を間違えたのでは?という気がする.

MSの人からも,オフィス事業部は成功しすぎてしまって,他の部署の社員の意見がなかなか反映されないという噂を聞いたことがある.昔のNetscapeでも,JavaScriptチームは他の部署の要求を聞こうとしないので困るという話を聞いたし,愛されるソフトウェアを生み出す秘訣は,独善的ではなく,協調的な開発体制にあるのかもしれない.