CADにインテリジェンスは必要か

面白い問題提起を見た。

Should CAD software anticipate your needs or do what you tell it to do?

果たしてCADはニーズを勝手に予測するようなインテリジェンスを備えるべきなのか。はたまた、やれと命令したことだけをやっていればいいのか。僕も以前「CADのユーザビリティとは何か」「今後のCADが向かうべき進化とは何か」なんてことを考えたとき、似たような問いに思い当たった記憶がある。

この元ネタはこちらの記事。下記の引用はこのブログに寄せられたコメント。

should CAD software evolve to become more and more intelligent , that is anticipating users’ needs , or should rather stay as a tool that works well under the user directives ? I am in favor of this second approach but I see the marketing appeal of the first.
CADはユーザーのニーズを予測するような知性をもっと備えるように進化していくべきなのか、それともむしろ、ユーザーの指示の下に機能する道具としてとどまるべきなのか。僕は後者だと思うのだけど、マーケティングでは前者ばかりがアピールされているね。

The CAD industry is split by History

僕も後者だと思う。

インテリジェンスというのは、裏を返せば「余計なお世話」になりかねない。僕は今までに何度も、MS Word が勝手に箇条書きモードに切り替わることに悪態をついてきた。ああ、コイツは全く持って "インテリジェント" だ。だがそりゃ余計なお世話なんだよ。

ユーザーインターフェイス設計って、ユーザーに「このソフトはインテリジェントだ」って思われたら負けなんじゃないかな。知性というのは、即ち主体性または自律性であって、それは即ち他者の支配を受けない独立したアイデンティティを持つということなのだ。僕は知性溢れる友人との会話は楽しいと思うが、自律性を発揮していうことを聞かないソフトウェアには腹が立つ。ソフトウェアは単なる道具なのだ。それは完全に僕の支配下に置かれるべきものなのだ。訳のわからない主体性を発揮されては困るのだ。

寄生獣でいうと、「三木」はダメで「後藤」が理想だね。「三木」は手足の意思統一ができていなかった。手足が「三木」の命令に逆らって動いてしまった。一方「後藤」は完璧だ。手足を完全に支配下に置いて制御していた。人と道具の関係もかくあるべきだ。(寄生獣ネタが分からない人、ゴメンナサイ)


さて、人はもっともっと便利な道具、便利なソフトウェアが欲しい。だけれど、人はソフトウェアをあくまで道具として支配下に置きたい。この2つは矛盾する欲求なのだろうか。

否、矛盾しない。と僕は思う。

ソフトウェア開発の原則、KISSがそのヒントにならないだろうか。KISSとは "Keep It Simple and Stupid" の略。これはつまり、一つのクラスや関数に余計なインテリジェンスを持ち込むな、という原則だ。クラスや関数といった構成部品はすべからく、単純明快に組み上げるべしという原則だ。どんなに高度で複雑なソフトウェアでも、単純明快な部品の組み合わせで構成することが出来るのだ。

このKISSの原則はユーザーインターフェイスにも適用できるのではないだろうか。どんなにソフトウェアが高度に進化しようとも、そのインターフェイスはKISSの原則に従って単純明快に仕上げるのが理想的だ。この理想が実現できれば、ユーザーにおかしな「知性」を感じさせることなくより高度で便利な「道具」が提供できるに違いない。僕はそう思っている。