プログラミング C# - 翔ソフトウェア (Sho's)

C#/.NET/ソフトウェア開発など

Mozilla Firefox ~ 良いソフトウェアとは

Mozilla Firefox

最近は、Mozilla Firefox を使ってみている。

firefox.jpg

IE 等と比較して、ほぼ問題なく使えている。

そして、使い込む程に、徐々にではあるが楽しくなってきた。

Web ブラウザとして、多くの面で進化している。

Firefox は、機能や見た目をカスタマイズできるようになっている。

柔軟なコア部分を拡張部分が取り巻いている。

そして、更にこれから進化していくであろう、という期待を抱かせる。

こういう新しいものに接することは、「良いソフトウェアとは、例えばどういうものか?」ということを考える良い機会になる。

■ 良い道具とは tools.gif

様々なユーザーがいる。様々な要望がある。

年年歳歳、環境は変化していく。新たな要望が、生まれていく。

一人一人のユーザーもまた、使い始めの時期があり、次第に使い慣れ、そしてその内、自己流の使い方を見つけていく。

徐々に使い方を変化させていくのだ。

使い始めの頃の「判りやすさ」・「使いやすさ」と使い慣れてからの「判りやすさ」・「使いやすさ」は違う。

使い始めの頃に便利だった機能が、使い慣れてからは邪魔な機能になることもある。

要らない機能は使わなければ良い、ではない。寧ろ、要らない機能は存在すべきでない。

道具に体を合わすのではない。道具が体に馴染んでいって一体感を感じさせるべきなのだ。そして、自分に合った道具を使う、という喜びを感じさせることができれば素晴らしいことだ。

■ ソフトウェアは良い道具になれるか software.gif

ソフトウェアにしてもハードウェアにしても IT 周りの道具は、今ひとつ使い勝手が宜しくない、とよく言われる。特にソフトウェアの使い勝手の悪さは、他の道具と比較されて指摘されることが多いようだ。

なにしろ、道具としての複雑さの違いがあるし、勿論、ユーザー側の歴史が違う。

なにより、道具としてのソフトウェア自身、まだまだこなれていないのだとは思う。

しかし、ソフトウェアは、可能性としては、すごいものを持っている(はず)だ。

普通の道具というのは、大概、作られた時点で機能や見た目が決まってしまう。

後付けの機能というのはそんなに期待できないし、後から見た目を変えることも余りできない。

つまり、こういう道具の機能や見た目は、静的(スタティック)バインディングであり、事前バインディングだ。

「良い道具の例」によくあげられる一眼レフは、あれは、Strategy パターンだ。

動的(ダイナミック)バインディングになっている。

インタフェースさえ合うものなら、使うときに機能を取り替えられる。

それに対してコンピュータという道具は、これは更に遅延(レイト)バインディングなのだ。

後付けの機能に対応する。

コンピュータがユーザーに与える利便性の多くは、後から「インストール」される。

Firefox のようなソフトウェアだって、先に見た通り、遅延(レイト)バインディングだ。

作り方によっては、後付けの機能や後付けの見た目に対応することができる。

使われ方が変化したり、どんどん進化したり、ユーザーの個々の希望に合わせたり。

そういうのはソフトウェアの得意技の筈なのだ。

ソフトウェアは、作り方により、とても良い道具になる可能性を持っていると思う。

■ 良いソフトウェアとは tool.gif

「やりたいことが一応できる」ことが、品質ではない。

万人の平均を満たすソフトウェアが良いソフトウェアではない。

人々の欲する機能を一挙に搭載したソフトウェアが良いソフトウェアではない。

良いソフトウェアは、「変化を抱擁(ほうよう)」する。