Firefoxの開発者にはUIの設計という事に対するポリシーが欠けている宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。2008タイトルは半分くらい釣り。3.1では多分それがデフォルトになる)。Connor氏が決めたものらしい。Conner氏のマネジメント能力の不足を責めてる人もいるようだけれども、僕としては、この人はUIの設計という物にポリシーを持ってないのかなー、という失望にも似た感想を覚えた。Optionsに抱いたものと同じ感覚。最後のタブを閉じた時にウィンドウも閉じるべきかどうかってのは、隠し設定一つで動作を変えれるような些末な問題に落とし込むべき事じゃなくて、ユーザが触れるフロントエンドとしてのFirefoxの設計思想の根幹に関わる事だと僕は思う。ユーザに「Firefoxとはどういうものか」と説明する時の、メンタルモデルの作り方をガラッと変えてしまうものだと思う。現状のFirefoxは、「Firefoxというアプリケーションがあって、そのアプリケーションは本体はごくシンプルな機能に限られていて、その中に、タブを伴って複数ページの切り替えができるサブフレームが含まれている」というトップダウンの設計になっている。「タブ」より上位に「メニューバーやツールバーやサイドバー」が存在しており、「タブ」より下位には何も従属していない。Chromeのようなマルチプロセスにはできない(するにはとても手間がかかるだろう)。ユーザには、「タブとウィンドウは異なるレイヤに存在するもの」という認識が求められる。Chromeは、「タブという小型でシンプルなWebブラウザがあって、それらを便利に操作できるようにするために一つのウィンドウに押し込めている」というボトムアップの設計になっている(ように見える、そういう演出をしている)。マルチプロセスで当たり前だし、「タブ」の上には何も(クローズボックスくらいは付いてるけど、それ以外のタイトルバーすら)なくて、ツールバーもロケーションバーも全部「タブ」より下位の存在として位置づけられている、そういう見た目をしている。ユーザには「タブ」と「ウィンドウ」の違いを意識させないようにしている、ように見える。ちなみにOperaはMDIのアプリケーションで、この両者の中間にあると思う。「タブ」より上位の物もたくさんあるけど、ロケーションバー等は「タブ」に従属しており下位の存在である、という作りになっている。タブより上にツールバーがあるか、タブより下にツールバーがあるか、っていうのは、単にバーの置き場所を上下に移動させればいいっていう話じゃないんですよ。フラットな「並び順の問題」じゃなく、縦の「主従関係」なんです、これは。今回入った変更のような動作が許されるのは、「タブより下にツールバーがあるデザイン」のアプリケーションだけだ。タブより上位に何もないんだから、タブが閉じられたら後には何も残らないのが当たり前だ。Firefoxの場合はそうではない。タブより外側に沢山の物があって、それらは「自分の下位にタブが存在している」ことを前提に動作している。下位の物(タブ)を一つ消したのなら、それより上位にある物は全部そのままでいるのが当たり前だ。かかわらず今回の変更で、下位にあるはずのタブによってそれより上位の物全てが破棄されるようになってしまった。そこにみんなは戸惑っているし怒っているんですよ。いう、自分の中にある無意識のメンタルモデルまで分かった上で発言してる人は、そう多くないと思うけどさあ。「ちょこっと動作を変えるだけ」そう考えてたんだろう。それが僕には、ポリシーがない無節操な行動に見える。冒頭で「半分は釣り」と書いたのは、これとは違うレイヤでFirefoxの設計にはポリシーがあるという事も知っているから。彼らは何でもかんでも中に取り込むのではなく、本体はシンプルに保ってそれ以外の要求はアドオンで解決する、というポリシーで開発を行っている(ように見える)。そのポリシーを今後も貫いていて欲しい。それは「Firefoxというプログラム」の設計ポリシーの話であって、「FirefoxというUI」の設計ポリシーじゃない。それとこれとは問題が別。ここまでタラタラと書いたこと、具体的な「FirefoxというUI」の設計に関して何もポリシーがないと、ユーザや開発者を振り回すことになる。そこのところをどうして彼らは分からないんだろう、という嘆きにも似た感情を、開発者主体で動いているオープンソースのプロジェクトというものについて感じることが僕にはたまにある。Chromeの動作(UIの設計思想)のどっちが素晴らしいか」ということについては、僕は考えないことにしてる。どっちにも一長一短がある以上、こういうのは刷り込みと慣れの問題でしかないと思うから。OS伝統の「画面上端にメニューバー」とWindowsやGNOMEやKDEの「ウィンドウごとにメニューバー」のどっちが優れてるのか、というのと似たような話です。UIとして(上記のような設計思想・メンタルモデルの面で)一貫性が保たれてないのはそれ以前の問題だ、というのがこのエントリの要旨ってことで。前の動作に戻す隠し設定が欲しいというバグで中野さんが「初めて最後のタブを閉じようとした時に確認するのがいいんじゃないか」という提案をされている。選択肢をユーザにわざわざ見せるのは良くない、ユーザの理解を妨げる事は徹底して隠すべき、という人もいるだろうし、UIと動作と設計の整合性がとれてるなら僕もそれに同意だけど、現状のUIも動作も設計も全部がバラバラでちぐはぐな状況では、選択を求める方がまだナンボかマシだと僕は思う。賛同コメントを付けてみた。コード書ける奴が正義のこの世界では、グダグダ評論家じみたことを書き連ねたり嫌味なコメントを残したりするより、とっととパッチ書いてIRCで担当者捕まえてねじ込む方が、実効性は高いと思うんですけどね......またまた追記。Chromeのようなアプリケーションを元々作りたかったし、その信念に基づいて提案しただけ」なのかもしれないなあ。今回の変更も氏にとっては「本来そうあるべき姿に戻そうとしているのだから当然のこと」という感じなのかも。しても、できれば、行動を起こす前に「そういう理想はさておき、現状はどうなってるのか?」という所に先に目を向けて欲しかったとは思う。タブを閉じた時にウィンドウを閉じない」隠し設定を付けるという、件のバグの表題通りの解決策についてはチェックインされて、それで解決ということになったようだ。もって、他の文句は新しいバグ立てて述べなさいという仲裁も入った。Bugzilla的にはごく自然な流れ。かかわらず流れ読まずについ最後っ屁コメントを残してまた議論を蒸し返してしまった僕は、マヌケな悪役もいいとこですね。3のリリース前に一度入っている。そのときは「他のタブを閉じる」の挙動のバグの修正とかもパッチに含まれていた。このときは、タブバーを初期設定で表示するようにしたんで、ブラウザウィンドウの起動速度が低下した。例のPiroさんが憤られてた「タブバーの構造の整理(シンプル化)」が行われた。バグを登録した人は「他のブラウザみたくタブバーを常に表示する設定にして、『新しいタブ』ボタンを初期設定でどこかに表示するようにして欲しい」だった。それを現在のFirefoxの開発畑の責任者のマイク・コナーさんがなぜか「タブバーを常に表示する設定にして、ブラウザウィンドウ内にタブが1枚しかない場合にタブを閉じる操作をしたら、そのブラウザウィンドウは閉じるように」に変えた。Goodgerさんなんかは好きみたい。Goodgerさんは「この挙動は好きじゃない」とコメントしてたけど強引にWONTFIX(修正を望まない)にはしなかった。Goodgerさんのようにユーザーインターフェイスについてちゃんと独自の考えがあって、自分の考えにそぐわない実装はさせない/止める/変えさせるという、一つのアプリケーションとしてのユーザーインターフェイスを統括してる人はいないように思える。悪い意味でパッチを書いたもの勝ちになっている。Tabsパネル、ドメイン名の強調表示なんかDaoさんのパッチ群も「アイデアはおもしろいし、今より良くはなるけど、それが万人に必要かは微妙だし、なにより実装が微妙」な感じ。そのためにわざわざ、くだらない拡張を書くハメになってしまいました。自体が終了してしまうというのは、のりさんのページで知りました。いった際の挙動は、ユーザに設定させていただきたいものです。すれば余計な野良拡張を書かずにすんだのに。製品を取り巻く環境まで気を配るということが欠落しているように思えます。余計な機能はつけなくていいから、全部拡張作者に任せてくれ、と言いたくなる。title>くでんさんなるほど、そういう事情があったんですね。Chromeが出てきたって事なんでしょうけど)。あればなおさら、なんでFirefoxをこんなにちぐはぐなものにしてしまうのか......いや、違う。タブまわりの挙動が分かりにくいものになっています。いいますのも、タブとウィンドウの扱いがぐちゃぐちゃになっているからです。タブブラウザ以前、私たちは複数のウィンドウをタスクバーを見ながら認識していました。ウィンドウを2、3枚しか開かない使い方では十分です。タブブラウザではタスクバーの代わりにタブバーを見て複数のタブを認識させます。確かに、多数のページを把握しやすくなりました。target="_blank"など、タブとは別に新規にウィンドウが意図せずに開かれてしまいます。結果、目的のページを探すためにタスクバーを見ればいいのか、タブバーを見ればいいのか分からなくなります。これでは本末転倒です。通常利用ではタブでページ管理し、タブごとを整理したいと明確な意図を持ったときのみウィンドウを分ける挙動でないと困ります。タブを無効化しています。最後のタブを閉じたときの挙動に関しても、タブとウィンドウの関係を把握できていない問題でしょう。挙動は迷わずに使えます。atの末尾に2018年6月21日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。「noda」なら、「2008-09-20_tab.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。