2008年8月27日

メニューという都合の良いインタフェース

そば屋の味はカレーライスを売り始めた時から下降線をたどる - Life is beautiful

このエントリーを読んでいて、"めちゃめちゃ簡単さ" という事、そして "できるだけメニューの数を増やさずにサービスの価値を高めて行こう" という部分で、ふと思った事が、実は、我々開発者(自分だけかも、、)は、メニューという開発者にとって都合の良いインタフェースに頼っていたのではないかと思った。

メニューを開けば、あらゆる機能にアクセスできる、反面、あらゆる機能がそこに詰め込まれ、ユーザの選択肢を増やしてしまっている。。迷わせる。。
だから、Appleは、メニューに機能追加するのではなく、新しいインタフェースを提供する事で、ユーザに悩ませる事無く、機能追加を実現している。そして、その新しいインタフェースを、如何に自然に操作できるように提供するか、そこが一番の関心事なのだと。
機能追加自体には、何の問題も無いのだけど、その機能を提供する方法に問題があるのだろう。

豊富な機能を提供しても、必要な時に見つからなければ、何の意味も無い事。。逆に言うと、必要な時に必要な機能を提供できる事が一番なわけだから。機能提供にも、一つのシナリオが大事なのかな。ただ、そのシナリオはいろいろだから、時にユーザに不満をもたらす事となる場合もあるのかもしれない。。。
多くのインタフェースは、機能のカテゴライズと、関心事の集約、そして、違う関心事については、それぞれ、デファクト、あるいは、自然にアクセスできるところに配置する事が大事なのかなー。

ふと思ったけど、そうすると、iPhone/iPodtouchのトップ画面にあるアプリケーション群というインタフェースは、なぜ、ただ並べただけのインタフェースにしたのだろう。。。アプリケーションが増えれば増える程、選択肢が増えて、目的のアプリケーションを探すのは、手間にならないのだろうか??んー、でも、それを解決してくれるのが、アイコンなのかもしれないなー。。実際にiPhone持っているわけではないので、そこに不満を感じるかどうかは、わからないけど。。ちょっと、疑問。。

2008年8月15日

初めてのRuby - 文字列

文字列は数値の固まりなのか?
irb(main):012:0> str = "Test"
irb(main):013:0> str[0]
=> 84
irb(main):014:0> str[0,1]
=> "T"
irb(main):018:0> str[0].class
=> Fixnum
irb(main):019:0> str.class
=> String
んー、イマイチしっくり来ないなぁ、、。。
str[0]        #=> "T"
str[0].to_i # 84
とかじゃ、ダメなのかなぁ、、。

初めてのRuby - 配列の長さ付き添字と添字代入

Rubyを修得するべく、事始めに、「初めてのRuby」を購入、先日届いたので読み始めたのですが、、若干気持ち悪いところがあったので書いてみる。

1.長さ付き参照
a = [1,2,3,4]
p a[0,2] #=> [1,2,3]
これが気持ち悪い、、というのも、Perlだと
@a = (1,2,3,4);
print @a[0,2]; #=> 13
という事になる。範囲添字というものがあるのに、何故、"長さ付き添字"と"範囲添字"が同じ挙動をする必要があるのじゃろう、、。。0,2って指定してるんだから、0,2の要素が取り出せた方が良いんじゃないかな、、。。指定した要素を取り出す時は、どうするんだろう。。もう少し、読み進めるか。。。

2.添字代入
a = [1,2,3,4]
a[0..2] = "A" #=> ["A",4]
これが気持ち悪い、、ってか、消えちゃうのかよ!!なんで、こんな挙動になるんだ。。。Perlとの挙動が違うので、意図しない間違えが頻発しそうだ。。。ちゃんと把握しとかないと。。。