オープンソースに関心がある人々は、なぜ Vivaldi ブラウザはオープンソースでないのか、その理由をよく尋ねてきます。この記事では Vivaldi ブラウザとオープンソースの関係を少し掘り下げて説明していきます。
多くの人にとって、オープンソースライセンスの下で Vivaldi ブラウザのソースコードをリリースすることの問題点は明確であることと思います。
Vivaldi は無料で提供されており、検索やパートナーとの取引から収益を得ているため、外部の人々がソースコードにアクセスし支援できる仕組みは Vivaldi にとってメリットになるはずですよね?
Vivaldi はこの観点について様々な見解を有していますが、オープンソースソフトウェアを使用している一支持者でもあるため、社内で定期的に議論されているトピックでもあります。
ただし他のトピックと同様に、このトピックもいざ掘り下げて見ていくとはるかに複雑なものであることがわかってきます。
Vivaldi ブラウザは一部オープンソース、一部クローズドソース
オープンソースの詳細に触れる前に、Vivaldi ブラウザがどのように構築されているか簡単におさらいしてみましょう。
Vivaldi は約3つの層で構築されています。
多くの人が既にご存知のように、Vivaldi は Chromium を基盤として構築されています。
Chromium に加え、広告ブロッカーやメモなどの機能をサポートする C ++ バックエンドコードもたくさん有しています。
これらの2つのレイヤーは、複数の異なる要素をによって構築されている UI をサポートするものとなっています。
- デスクトップでは、UI は主に HTML + CSS + JS を使用。
- Android では、UI は Java で実装され、ほとんどが Chromium に含まれている Java UI から派生(Chromium Java コードのライセンスでは、変更を公開する必要はなし)。
Chromium 自体にはオープンソースライセンスがあり、UI レイヤーと機能をサポートするために Chromium に加えられたすべての変更が公開となります。また、Chromium の変更の一部であるかのように、すべての C ++ 機能バックエンドコードも公開しています。 これにより、Chromium と C ++ コードのすべてを1つのライブラリで構築できるため、内部プロセスが簡単となっています。
Vivaldi ブラウザのオープンソースコードのコピーは、vivaldi.com にて入手可能です。 変更に関しては、オープンソースの BSD ライセンスの下で公開されています。 詳細は、パッケージ内の README ファイルと LICENSE ファイルで説明されています。
Vivaldi にはサードパーティのコードも含まれています。このライセンスは、ソースパッケージとインストールされているブラウザより vivaldi://credits にて確認することが可能となっています。
3つのレイヤーのうち、UI レイヤーのみがクローズドソースです。 つまり、ブラウザのコードの約92%が Chromium からのオープンソース、3%が Vivaldi のオープンソースであり、残りの5%が UI のクローズドソースコードとなっています。
Vivaldi ブランド
Vivaldi ブラウザは実質オープンソースライセンスの下でリリースされているようなものなのに、厳密にはそうではないのはなぜなのか?
Vivaldi 独自の UI は、ご存知の通りブラウザをユニークにしているもの。コードの観点からみて最も価値のある我々の資産でもあるんです。
Vivaldi はオープンソースライセンスで公開することはなく、難読化されたバージョンのみを公開しています。難読化は、パフォーマンスの向上目的で部分的に使用されている他、外部の者がコードを利用して Vivaldi に似たブラウザ(基本的にはフォーク)の構築を防ぐために重要となる、防衛線の役割も担っています。
しかし、そもそもフォークは恐れるべきなのか?
これは非常に主観的なものであるため、誰しもが納得するとは思っていません。代わりに、この問題についてこの考えがどこから来ているのかを説明します。
オープンソースの観点からは、フォークはほとんどの場合メリットとなります。他の誰かの作品やプロジェクトをフォークし、それから何か新しくて優れたなものを作り、その追加のクレジットを受け取る。そして派生したプロジェクトは、それに対するクレジットを受け取り、そしてプロジェクトの提供元はその変更や追加を受け入れて… みんながハッピーハッピーです。
しかし、先に示唆したように、Vivaldi はコードが全てではありません。強制する必要のあるブランドと関連商標を持っています。つまり、フォークは別の製品としてブランド化する必要がある、ということです。これが、Chrome と Chromium が異なる理由です。
つまり、派生した新製品は簡単に競合相手となってしまうということです(ただし、それでも販売する必要がある)。
長い間存在している、または一般的な名前である大規模なプロジェクトとなると、人々はフォーク自体に気付かないでしょう。
ただし、Vivaldi はまだ小さく、影が薄くなりやすいため、収益だけでなく、ブランドの脆弱性も高まります。
また、私達のコードに基づく新しい派生プロジェクトが Vivaldi の倫理に根本的に反する機能を実装している場合(たとえば、人権や環境に何らかの形で損害を与える等)、それらの機能の作成者とはまったく関係がないとしても、Vivaldi 側の士気に深く影響を与える可能性があります。Vivaldi がそのプロジェクトに対する責任を負うことは決してありませんが、一緒に言及されてしまうことで私達の評判に影響を与える可能性が十二分にあります。
Vivaldi の UI レイヤーを難読化しておき、こういった心配を減らすことができるのであれば、完璧なソリューションとはほど遠いとしても、間違いなく実行する価値があります。ビジネスは時に、従業員としての我々を尊重するため、不確実性を最小限に抑える決定を下さなければなりません。
オープンソースプロセスはコストもかかる
Vivaldi がオープンソースライセンスを採用していない理由の中には、より現実的なものもあります。 オープンソースに移行することで、Vivaldi を支持してくれている外部の優秀な人々から多くの助力を得ることができるという大きな魅力があります。しかし、Vivaldi の規模を考えるとこれは必ずしも有益であるとは言い切れないのです。オープンソースのプロセスにおいて、提出されたパッチを確認し、コミッターとコミュニケーションをとる必要が出てきてしまうのです。
このプロセスには当然時間を必要とし、そのやりとりに付随する様々な制約も発生してくるため、この時間の投資が私達にとってメリットであるとは言い切ることができません。そのため、内部の開発陣のみでより優れたブラウザの構築にリソースを割く方が生産性がより高いと判断しています。
セキュリティ上の利点は?
Vivaldi ブラウザのセキュリティ関連コードのほとんどは Chromiumにありますが、UI にもセキュリティ関連コードがいくつか含まれています。Vivaldi の信頼性の向上のため、UI の特定のセキュリティ関連部分をオープンソースにする必要があると思う場合、ぜひお知らせください。コードバンドルの一部としての公開を検討しますので、その際はご自身で確認してください。
Vivaldi が無くなったらどうなる?
妥当な懸念事項でしょう。 Vivaldi で働く人間の大多数は、Opera Software が Chromium ベースの実装に切り替えることを決定したことで、Presto ベースの Opera が存在し続けることができなくなったたことに不満を抱いています。個人的にですが、私も Presto ベースの Opera の開発、改善、修正に多くの時間を費やした一人です。そうです、もし仮にオープンソースだったとしたら、今日まで生き続けていたかもしれません。 全てが無駄になったんです。
でもこれって Vivaldi をオープンソース化する十分な理由になりうるのでは?そう、その通りです。Vivaldi で働く大半の従業員も同意していることでしょう。しかしながら、Vivaldi は常に成長しており、将来について決して悲観的ではありません。最終的に私達が対処することになりますが、現時点では深刻な問題とは捉えていません。
後ろは振り返らない
これは最重要ポイントであり、難題の1つ。 仮にオープンソースを試した際、後に我々に適していないことがわかったとしても、後戻りすることはできません。オープンソースライセンスの下でリリースされたコードは、永久にオープンのままになってしまうのです。リリースされたコード自体を廃止することでこれを回避することが可能ですが、このプロセスにはかなりの時間と労力を要します。したがって、ビジネスの観点からオープンソースが自分達に適しているかどうか確信が持てない場合、試さないことが安全かつ簡単な解決策と言えるでしょう。オープンソースは素晴らしいものですが、上記がデメリットです。
Mod Vivaldi でさらにカスタマイズ
オープンソースの議論に煩わされず、コードを編集しVivaldi ブラウザのカスタマイズ(スキルを持っていることが前提)することのみに興味がある場合、デスクトップバージョンで行うことは可能です。
圧縮された JavaScript コードを直接編集するだけで、難読化されたコードを理解、そして個人用に変更することができます。
これは、変更を適用するために完全なコンパイル手順を必要とする他のブラウザよりも簡単です。
ライセンスでは正式にこれを許可していませんが、Vivaldi はこれを歓迎しており、ユーザーがフォーラムを通じてこれらのコードの変更を共有できるようにしています。
結局のところ、Vivaldi ブラウザはオープンソースであるべき?
これまで述べてきたように、これは簡単な質問ではありません。
両方向を支持する議論がありますが、私達は今提供している形態に満足しています – オープンソースライセンス部分を多く含み、クローズされているが変更可能な限られた量のコードを含む無料のソフトウェアであること。
Vivaldi のイメージ、そしてブランドのアイデンティティ両方の保護が価値あることであると考える限り、私達はこのスタンスを続けていきます。そして、今後もこの課題とは向き合っていきます(私達はこのスタンスをずっと支持してきていますが、実際に声に出して言ったことはありませんでした)。
メイン画像 – Markus Spiske (Unsplash) より。 Vivaldi Julien Picalausa / Hojo(日本語訳)