驚き最小の原則
驚き最小の原則(おどろきさいしょうのげんそく、Principle of least astonishment または Rule of least surprise)とは、ユーザインタフェースやプログラミング言語の設計および人間工学において、インタフェースの2つの要素が互いに矛盾あるいは不明瞭だったときに、その動作としては人間のユーザやプログラマが最も自然に思える(驚きが少ない)ものを選択すべきだとする考え方である。
例えば、あるユーザインタフェースでは ⎈ Ctrl+Q を押下することでプログラムを中止させるとする。同じユーザインタフェースにマクロを記録する機能(キーを押下した順序を記録して後で再利用できるようにするもの)があるとする。ユーザは Ctrl+Q を含むキーストロークをマクロとして記録したい場合もあるだろう。驚き最小の原則に従えば、マクロ記録中の Ctrl+Q はプログラムを中止させずにキーストロークとして記録される方がユーザを驚かせない。
この経験則は、賢明なデフォルトの適用にも関係している。
用例
この節はその主題が日本に置かれた記述になっており、世界的観点から説明されていない可能性があります。(2008年6月) |
日本語話者
結城浩は1996年、この原則を人間関係を円滑にすすめるための心得に拡張し、「驚き、最小の法則」として紹介した。たとえば、プログラムを顧客に納品する際に、判明しているバグがあるのなら、それを伝えておいたほうが顧客にとっても利用時の戦略を立てやすくなる、といったものである。「『どうしようかな?』と思ったときには、 相手の『驚き』を最小にするような選択をすべき」であるという[1]。
プログラミング言語 Ruby は、一時期「驚き最小の原則」とともに語られることが多かった。ただし、作者のまつもとゆきひろはこの原則を Ruby の設計哲学として採用したことはないと述べている[2]。Ruby については、「さまざまなバックグラウンドの人々すべてを驚かせないことではなく、Ruby のやり方に十分に慣れた人が持つ常識が一貫して通用するという意味」[3][4]であるとして、「Matzの驚き最小の原則」という言い方も提案された[3]。現在では Ruby が「驚き最小の原則」とともに語られることは少なくなっている[5]。
脚注
- ^ 結城浩 (1996年12月). “驚き、最小の法則”. プログラマの心の健康. 2008年6月7日閲覧。
- ^ Bill Venners (2003年9月29日). “The Philosophy of Ruby, A Conversation with Yukihiro Matsumoto, Part I”. Artima Developer. 2008年6月8日閲覧。
- ^ a b “まつもとゆきひろ 答える”. スラッシュドット・ジャパン (2003年3月14日). 2008年6月8日閲覧。
- ^ Yukihiro Matsumoto (Thu, 26 May 2005 22:51:39 +0900). "Re: A different perspective on Ruby". Newsgroup: comp.lang.ruby. 2008-06-08閲覧。
{{cite newsgroup}}
:|date=
の日付が不正です。 (説明) - ^ まつもとゆきひろ. State of the Dominion. 日本Rubyカンファレンス2006. 該当時間: 1:03:30. 2008年6月8日閲覧。
{{cite AV media}}
: 不明な引数|date2=
は無視されます。 (説明)
外部リンク
以下、英文
- "Applying the Rule of Least Surprise" エリック・レイモンド作 The Art of Unix Programming より
- Principle of Least Astonishment at Portland Pattern Repository