GUIほど難しいものは無い
突然ですが、個人的にはGUIほど難しいものは無いと思っています。 そのため、何か作る時にはCLI(Command Line Interface, もしくは CUI)とかライブラリになりがちです。 丁寧にするにしても、manファイルを書いたり、headerにdoxygen書いたり、perldocを書く程度で済むというのが良いです。
GUIを作る時に一番難しいのが、使い勝手を良くすることです。 いつも作っていて最悪なのが、自分が使いやすいものは大抵は他人にとって使いにくいものになってしまうことです。
作っている人の前提(私の場合)は、コードの中身になりがちです。 コードを書いていると「この関数に入れられるこのパラメータもどこかから入れたいなぁ」などの煩悩が湧いてきてしまい、結果としてパラメータが無限に多い煩雑なUIになってしまいます。 さらに、コード内部の意味論をGUIの構成に持って来がちになってしまうという落とし穴もあります。 あああああ、駄目GUI作成者の典型ですね。 (そもそもコードも駄目駄目だという噂もあったりします。)
万人が使って、全員が100点満点をつけるようなGUIは恐らく無いので、ユーザの多くが満足するような作りにしなくてはなりません。 その「ユーザの多くが」という点が結構厄介だと思っています。 そもそも、その「ユーザ」のレベルはどれぐらいなのだろうというところから話が始まってしまいます。 どこまで細かいパラメータをGUIで入れさせてあげるかが、これで変わる場合があります。 ヘビーユーザは、コード内の主要機能に渡せるパラメータは自分で設定したくなると思われます。 一方、ライトユーザはデフォルト値で十分なパラメータが多いです。 ライトユーザは煩雑なパラメータに悩まされずに簡単に使える方がうれしいです。
ライトユーザの方が市場が大きい場合が多いです。 しかし、作っている人のコミュニティがヘビーユーザばかりという特殊なコミュニティだと、ライトユーザの気持ちがわからなくなってしまう場合もあります。 自分のまわりの人が「使いやすい」と言ってくれても、多くの人には「意味不明」と言われてしまったりします。
さらに、私にとって究極に難しいのが「それなりのものにみせる」ということです。 ボタンのデザインや配置、選択タブなどの綺麗さ、動作途中のアニメーションなどを駆使すると、いかにも製品ぽい高級感を出すことができます。 私にはどうしてもそれができません。 無骨な生ボタン丸出しになってしまいます。
絵が描けたり、綺麗なデザインを出来る人が凄いといつも思ってしまいます。 ですが、デザイナさんに「デザインが出来るの凄いですね」と言うと、決まって「プログラム書けるなんて凄いですね」と返されます。 (あほっぽいやり取りであるという突っ込みはあらかじめ禁止とさせて頂きます。) 結局「隣の芝は青い」ということでしょうか。
まあ、GUIが必要な時には他の人がGUIを考えてくれているということがほとんどなので問題にはならないんですが、自分でGUIを作る時ほど無駄に時間がかかることが無いと思う今日この頃でした。
最近のエントリ
- 日本のIPv6採用状況が50%を超えている件について
- 「ピアリング戦記」の英訳版EPUBを無料配布します!
- IPv4アドレス移転の売買価格推移および移転組織ランキング100
- 例示用IPv6アドレス 3fff::/20 が新たに追加
- ShowNet 2024のL2L3
- ShowNet 2024 ローカル5G
過去記事