Dec 07, 2017

Firefox 57とかWebExtensions移行後のツリー型タブとかがクソとかゴミとか言われているのを見て思う事

Firefox 57がリリースされた前後から、アドオンが使えなくなってクソだとか改悪だとかの感想を目にする機会があって、気分が滅入る事が度々ありました。

自分自身は、これは必要な事だったと思っていますし、絶望は1年ほど前に嫌というほどし尽くして、今はもう「で、どうやって乗り越えるか」というフェーズに気持ちがすっかり移ってしまっているため、それらの後ろ向きなコメントには正直な所「えっまだそんなこと言ってるの……」という感想を抱いています。そんな後ろ向きな事を言っていないでもっと生産的な事をしましょうよ、と思わずにはおれません。

しかし同時に、自分自身も他の分野ではエンドユーザーとして後ろ向きな選択をしている場面は多々あり、同意する部分が無いとも言えません。というか今絶望している人達と同じような事をつい1年から2年ほど前には自分も言っていた訳で、それを思い起こす度に、し尽くして乗り越えたはずの絶望が何度も蘇ってきて、「何故自分がこんな理不尽な思いをせねばならん(かった)のだ?」と憤りの感情が頭をもたげてくるのは否めません。

そういう自分の中での混乱を鎮めるために、エンプティ・チェアを2~3個置いて自分の思う所と結論に至るまでの経緯を各立場から辿り直し、考えを整理してみる事にしました。

ユーザー・アドオン作者寄りの立場から

情報収集や日頃のWebブラウズにFirefoxを使っていて、今までFirefoxを使い続けてきた理由が「自分が困っている問題を的確に解決してくれるのが、Firefoxの特定のアドオンだった」という人にとって、そのアドオンがFirefox 57での旧形式アドオン全面廃止の巻き添えを食って使えなくなってしまうというのは、到底看過できる事ではないです。

Firefox 57を紹介する人の中には、「たかがおまけに過ぎないアドオンごときのために、アドオンが対応していないから新しいバージョンのFirefoxに更新できないとか、欲しいアドオンが無いから別のブラウザに移れないとかいうのは本末転倒だ」という感じの意見を持つ人もいるようです。

が、僕はこれには同意できません。ブラウザもアドオンも、何らかの目的を達成してくれる手段として選択されるという意味においては等価です。目的を達成してくれるからこそ僕らユーザーはそれを道具として使うのであって、その道具を使いたいから目的を諦めるという事の方が遥かに本末転倒でしょう。ユーザーは、やりたい事があるからFirefoxとそのアドオンを使っているのです。安全になろうが高速になろうが、やりたい事ができなくなるなら、使う意味はないのです。やりたい事ができて、且つ安全で高速、でなければ選択肢たり得ないのです。そこを履き違えてはいけません。

従来のFirefoxはその異常に高い拡張性、コンシューマ向けのソフトウェアとしては常軌を逸したカスタマイズの柔軟性の高さから、様々なアドオンが生まれる土壌となりました。その中には、ブラウザの開発者主体では決して思いつけないような、ユーザーの真に必要としていた物を実現する物も数多くあったと思います。

にも関わらず、それらを移行できないような貧弱なAPIしか用意しておらず、ユニークだったアドオンが幾つも取り残されたままなのに、Chrome用拡張機能等からメタデータを差し替えて変換しただけのアドオンで数を水増しして「既に数千のアドオンがあります」と言い張るなどというのは、既存ユーザーに対して不誠実極まりなく、羊頭狗肉もいい所です。アドオンの数の多さを謳われる度に神経を逆撫でされる事甚だしく、「俺の役に立たねえ物が何千個あっても関係ねえんだよ!」と不快な思いを募らせるばかりです。

ベンダー寄りの立場から

そうは言っても、既存ユーザーの方ばかり見ていては新規ユーザーが増えませんし、Web技術の進歩にも着いて行けません。Firefoxは今のユーザーと共に骨を埋めるのではなく、これから先も存在し続けなくてはいけません。単にマイナーであるというだけならまだしも、「イマドキまだFirefoxなんて使ってるの? 最新のトレンドに着いてけてないロートルなんだね……」なんてオワコン扱いされる地位に甘んじ落ち着いてしまっていては、それは叶いません。従来型のアドオンを動かし続けるためには、極論すれば、今ある物を変えずに維持していく他ありません。変えるなというのは、つまり、オワコンで居続けろという事です。その先に待ち受けているのは、確実な滅亡です。

Firefoxの開発体制を維持するには当然金がかかります主な収入源である検索エンジンの契約は、一定以上のユーザー数があってこそ成り立ちます。ユーザー数が減り続けていけば、検索エンジンにとってFirefoxは魅力的な契約相手ではなくなり、契約の更新はなされず、収入源は失われるでしょう。新規ユーザーを引き付け得る物であり続けなければ、Firefoxは存続し得ないのです

「天下のGoogle様が我ら下々の者に恵んで下さる素晴らしきChromeさえあればいいではないか。実装が1つだけになれば検証の手間も減るというものだ」というのもあまりに近視眼的な物の見方です。Web技術そのものの中立性の維持のため、最大のプレーヤーの(悪意によらない、善意からの物であっても)暴走に歯止めをかける抑止力としてある程度の発言力を持ち続けるため、選択肢の一つとしてFirefoxは存在し続ける必要があります。新規プレーヤーが増える事に期待できない現状では、Mozillaがここで消え去ることの損失はあまりに大きいでしょう。

ユーザー・アドオン作者の立場から

そういう風な大義を抱えているからといって、これまで長くFirefoxを使い続けてきたユーザーやファンやアドオン作者に一方的に大鉈を振るう暴挙が許される訳ではないです。その報いは信頼の喪失という形で返ってきます。実際、今回の事でFirefoxを見限る選択をした人は少なくないでしょう。Chromeと同じ事しかできないなら、Chromeを使えばいいだけの事なのですから。

ベンダー寄りの立場から

その責任をすべてベンダーに押し付けるのはそれこそ無責任というものでしょう。Mozillaはトータルの意思決定や経営判断等のクローズな所で進む話はあるものの、開発コミュニティへの参加は誰でも自由にできます。門は開かれているのです。

既存アドオンを移植するのに今あるAPIが使いにくいとか足りないとかいうのは、アドオン作者からのフィードバックとコントリビュートが足りないからという部分がかなりあります。アドオン作者の側が「俺様のニーズを満たす素晴らしいAPIが揃ったらWebExtensionsに移行してやらんでもないよ、ただし具体的な要求はわざわざ出してやらんから察せや」と待っているだけでは、あるいは「面倒臭いから完全に同じAPIにしてくれよ、じゃなきゃ対応なんてできないよ。新しいやり方なんか憶えたくないよ」と歩み寄りを拒否する限りは、状況は悪化こそすれど好転はしません。Mozillaの中の人はFirefoxの専門家ではあってもアドオンの専門家ではありません。どのようなAPIが必要とされているのかは、現場の生の声をBugzillaに届けなければ開発者には知りようがないのです。

ユーザーの立場から

つまり、ユニークなアドオンがFirefox 57で動かなくなってそのままなのは、アドオン作者の怠慢が原因ということではないですか。

アドオン作者の立場から

コントリビュートせよと言われても、そもそも「移行を試してみるに足るレベル」に達していなかったではないですか。事実、ツリー型タブに至ってはFirefox 57でようやく必須のAPIが揃ったために移行ができた訳で、しかもその過程でいくつもAPIの不備に遭遇しています。それより以前のAPIの完成度・充実度が今より低かった状態では、ドッグフーディングもままならなかったでしょう。従来型アドオンを全面的に廃止するにはまだ明らかに時期尚早でした。現在まで続くユーザーの混乱と恐慌がそれを如実に物語っています。「Firefox Quantumは良くなった」という記事が矢継ぎ早に出てくるにつけ、Mozillaはこの事実から目を逸らしたがっているのでは?とすら感じます。

それに、勇気を出してBugzillaに提案した所で、にべもなくWONTFIX(修正・対応予定無し)とされる事が非常に多い印象があります。どんな提案をしてもWONTFIXで片付けられてしまうのでは、コントリビュートしようという気になれません。そもそもがお仕着せの仕様ありきでやられている所に、外部からの介入の余地は無いように思えます。

ベンダー寄りのアドオン作者の立場から

本当にそうでしょうか。WebExtensionsへの移行が発表されてからこっち、Mozilla側の態度はそれまでとは明らかに違うと自分は感じています。アドオン作者向けのヒアリングを何度も行っていて、お仕着せでない物を作ろうという姿勢が伺えます。今までの似た取り組み(FUEL、Add-on SDK)は「使いたい人だけどうぞ」「新規の人はこちらをどうぞ」といった温度感だったように思いますが、それに比べてWebExtensionsは「全体を移行するのだ」という強い意思を感じます(実際、このプロジェクトを担当したAndy氏的にはそういうつもりだったようです)。自分には、「Mozilla側からそこまでやってくれるのなら、こちらからも歩み寄ろう」と思えました。

提案が拒絶されるのは大抵は、既存のAPI群の設計やポリシーにそぐわなかったり、十分な理由が説明されていなかったりするからです。文脈を踏まえた適切な提案であれば、一顧だにされないという事は無いのではないかと思います。実際、自分の過去の提案で拒絶された物は、今見返してみると、自分の都合をがなり立てるばかりでAPIの将来性や世界観との親和性、他のアドオンでの有用性について考慮が大いに不足していたように思えます。また、WebExtensionsの仕組みの諸々への理解が進むうちに、新しいAPIが無いとできないと思っていたことが、実は全く別のアプローチを取ればできる場合もある、という事も分かってきました。新しいAPIが本当に必要なのか、工夫の余地がまだ残っていないか、実験や考察を重ねてみる事をまずはお勧めしたいです。

いずれにせよ、「今までの物そのままでいる事は状況的に不可能」という事を大前提として考えないといけません。前に進むか後ろに戻るかではなく、もう前に進むしかないのです。

ユーザー・ユーザー寄りのアドオン作者の立場から

前進あるのみなのは分かりました。じゃあせめて、以前と同じ使い勝手で使える物を作れる土壌は用意しないといけなかったのではないでしょうか。特にTab Mix PlusやAll-in-One Sidebar、Classic Theme Restorerのような「これさえ入れればOK」と言えるパッケージが無いのは困ります。

ベンダー・ベンダー寄りのアドオン作者の立場から

そういうパッケージに需要がある事は間違いありませんが、オールインワン型のパッケージとして見せる事のデメリットにも目を向けるべきです。オールインワン型のパッケージは、右も左も分からないユーザーのための選択肢としては良いですが、「一部の機能だけあっても駄目で、全部の機能が揃って初めて価値がある」という性質の物なので、開発するのも維持するのも必要なコストが非常に大きいです。実際、現在の状況は「オールインワン型のアドオンが移植可能になる前にFirefox 57で従来型のアドオンの対応が切られてしまった」と言うより、「従来型の実装からの移行を1年以上の期間を通してずっと促され続けてきたのに、今に至るまでに作業の完了が間に合わなかった」と言った方が適切に思えます。

また、多機能なアドオンは多機能であるが故に「それが何をするための物なのか」が分かりにくくなるため、ユーザーは無節操に要望を送り続け、作者も無節操に要望を受け入れ続ける、という事になりがちです。見当違いの要望が寄せられた時に「それはプロジェクトのスコープ外だから」と断れるのは、単機能のアドオンの大きな強みです。アドオンは個人の余暇で開発される事が多いので、単機能のアドオンとして開発した方が長期的にはプロジェクトを維持しやすいでしょう。

そもそもそういったモデルを想定しているからか、ツールバーに置くボタンは1つしか定義できないなど、WebExtensionsのAPI自体も単機能のアドオンを作る事を強く志向した設計になっている様子が窺えます。テーマの配色などのように、Firefoxが提供するAPIを通じて共有される情報を使って暗黙的に連携したり、あるいは他のアドオンに対して明示的にAPIを提供して連携し合うようにしたりと、WebExtensionsでは「単機能のアドオン同士が互いに連携しあって良いユーザー体験を提供する」事が自然であり、望ましい姿なのだと言えます。

ユーザー・ユーザー寄りのアドオン作者の立場から

どういう物を作るかは作者が、どういう物が欲しいかはユーザーが決める事であって、「どういうアドオンを作るべきか」「どういうアドオンが存在するべきか」という事をプラットフォーム提供者であるMozillaが決めるのはやり過ぎ・横暴に思えます。

機能ごとに小さなアドオンを選んで能動的に組み合わせるというのは、誰にでもできる事ではありません。それは典型的な「よく知っている、分かっている人」の理屈です。知識が無い人、機能ごとにアドオンを探し出すまでの情熱を持たない人にとっては、オールインワン型パッケージの恩恵は計り知れません。繰り返しになりますが、エンドユーザーは「自分自信が知識を付けて詳しくなる事」を求めてはおらず、「詳しくない自分でも恩恵に与れる、良きに計らって目の前にある問題を解決してくれる物」を求めているのです。

ベンダー寄りの立場から

そのプラットフォームでどんなアプリケーションの存在を許容するかは、一般にプラットフォーム提供者の裁量次第で決まります。あらゆる物を作れる自由度が過去のアドオンにあったのも、ユーザーがそれを愛したのも事実ですが、それはあくまでその時点でそうだったというだけの事で、未来永劫そうでなければならないという性質の物ではないでしょう。

Mozillaのこれまでの歴史的経緯としては、元を辿ればNetscapeのブラウザ製品の開発を進めるために社外に置かれた組織に過ぎませんでしたが、Netscapeの消滅とMozilla Foundationの成立を経て、Mozillaが公に標榜しているミッションは現在では、インターネットの自由と公共性にフォーカスした物になっています。保有する資産の1つであるブラウザ製品をそのミッション達成のために活用していくという事はあっても、「ブラウザという一製品をアプリケーションプラットフォームとして提供する事」のためにミッションを捨てる事は無いと考えられます。そして前述した通り、WebExtensionsへの移行と従来型アドオンの廃止はまさに、ミッション遂行のために独自のブラウザを今後も活かし続ける上で必要な選択だったという事ではないでしょうか。

ユーザー・ユーザー寄りのアドオン作者の立場から

そのミッションとやらのために、「Firefoxの豊かなアドオンエコシステム」というかけがえのない資産の価値を毀損するという事が許せないのです。

ベンダー寄りの立場から

であれば、後はもうforkするしか無いのではないでしょうか。Firefoxのソースコードは過去も現在もすべてOSSとして公開されており、Firefoxという商標さえ使わなければ、誰が製品に使っても何ら問題ありません。また、ソースコードのスナップショットではなくリポジトリそのものが公開されていますから、コードの歴史的な経緯も含めてすべてを誰でも引き継ぐ事ができます。言うなれば、「WebExtensionsへの移行と従来型アドオンの廃止、という選択を取らなかったMozilla」というifの歴史を、今からでも誰でも作る事ができるのです。

WaterfoxPale Moonは、まさにそういうプロジェクトです。特にWaterfoxは明確に従来型アドオンの継続を表明しています。Mozillaは「この路線では維持していけない」と判断して諦めた道ですが、「いや、この路線で行けるはずだ」と信じる支援者が多く集まれば、プロジェクトは存続し続けるでしょう。今までは運良く誰かの負担におんぶに抱っこで恩恵を得られていたに過ぎなかったのだ、という事を分かるべきです。今後は他でもない自分自信が、相応の負担をしてプロジェクトを維持していく側に回るしかないのです。それが自由に伴う責任という物です。

ベンダー寄りのアドオン作者の立場

極論はやめましょう。WebKitを自社製品に必要な品質にまで引き上げたAppleや、思い通りにならないWebKitから分離してBlinkを立ち上げたGoogle、のような大資本の後ろ盾なしに、コミュニティだけの力でこの規模の製品が維持されていける可能性は高くはないでしょう。

議論が混乱しがちですが、アドオンにまつわる以下の3つの論点はそれぞれ分けて考えた方が良いです。

  1. オールインワン型で、初心者はこれさえ入れておけばOKだと言える性質のアドオン
  2. Firefoxの振る舞いや見た目そのものを変える性質のアドオン
  3. 他に類を見ないユニークな機能を提供する性質のアドオン

「これがなければ仕事にならない」というのは3番目の性質に由来する話であって、突き詰めれば1番目と2番目の性質、特に1番目は必須ではないはずです。

1番目の性質は、既に述べた通りWebExtensionsでは現実的ではないものの、無いなら無いで、アドオンの紹介記事とかランキングとかといった別の物でカバーできる余地があります。2番目も、大部分は慣れの話でしょう。私見ですが、これらの点に拘りすぎている人は本質が見えていないと思います。自分にとって本当に必要な物は何だったのかという事をきちんと見つめ直さずに、脊髄反射で「今までと違う!嫌だ!」と拒否しているのでは?と感じる場合すらあります。

「エンドユーザーは道具の使い方に詳しくなりたい訳ではない」というのはまったくその通りです。が、しかしその一方で、「必要とあらば道具の使い方にも詳しくなるべき」というのもまた真でしょう。新しい道具の使い方を学ぼうとせず、従来通りの非効率的なやり方に拘泥して、結果として品質の低い成果しか出せていなければ、お笑い種ではないですか。「いや、自分は素人だから。ガチ勢じゃないから」? 個人的には、ベテランが言っていたら情けないと思いますが、人が持つリソースは有限でどこにリソースを投下するかはその人の判断次第で、自分も同様に傍目から見れば愚かしいリソース配分の仕方をしている自覚はあるので、他の人を強くは非難できません。

ともかく、3番目こそは代替案や慣れではどうにもならない「Firefoxのそのアドオンでしかできなかった事がある」という話で、これこそ「それが失われたら価値が無い」と言うに値する点でしょう。そして僕は、Mozillaがこの点に無頓着であるとは思っていません。

FirefoxのWebExtensions APIはChromeの拡張機能向けAPIとまったく同じ物や、ただのサブセットではありません。互換性を保つように設計されてはいますが、ChromeにもOperaにもEdgeにも実装が無い、少なくとも今の所はFirefoxにしかないAPIという物も多数あります

これらのうちのいくつかは、既存アドオンの移行にどうしても必要であるという理由で実装された、言わばベンダー側からの「歩み寄り」である物もあります。僕が基本的にWebExtensions推しなのは、このような事実があるからです。であるからこそ、現実的にユーザーやアドオン作者の立場からできる事もまた、歩み寄りだと僕は考えています。ベンダーの歩み寄りに応えてユーザーやアドオン作者の立場からも歩み寄るという事が、3番目の性質を備えたアドオンを一日でも速く取り戻し、今後も長く使い続けられるようにするための最短のルートなのではないでしょうか。

結論

単純に自分自身が長年のMozillaおよびFirefoxのファンであるからとか、これまでにも公私ともにコミットメントをしてきたからだとか、今さら別のブラウザに乗り換えるのも億劫であるからとか、あるいは1年半前のAllHandsでAndy McKay氏やその他多くの人達に良くして頂き、彼らの本気度合いを肌で感じたから、といった個人的な事情が自分の判断に大きな影響を与えている事は否定できません。しかし理屈としては上記のような思索を経て、僕は引き続きFirefoxを使いアドオンを作っていこうと判断しました。そうして腹を括ったからこそ、ツリー型タブマルチプルタブハンドラテキストリンクセカンドサーチロケーションバーから新しいタブを開くと立て続けにWebExtensionsへの移行を進められたのだと思っています。

最近受けたメールインタビューを元にした記事(英語)ではポジティブな面が強調されているように感じた事もあり、ここでは敢えてネガティブ面も出して書いてみました。読み比べてみると面白いかもしれませんね。

エントリを編集します。

wikieditish message: Ready to edit this entry.











拡張機能