Linux はデスクトップ分野で何を間違えたのか

思うに、デスクトップ分野の Linux の問題は、その周りに生み出された開発者の文化に根ざしている。

リーナスは下位層であるカーネルの人だが、何年も前に彼がデバイスドライバのバイナリ互換性を捨てたとき、我々のコミュニティの空気を決定づけた。カーネルの人たちにはそれについて正当な理由があるだろうし、Linux 業界に自分たちのルールに従うよう強制したかもしれないが、デスクトップの人たちはカーネルの人たちのような力がなかった。それでも我々はその姿勢を貫いた。

我々のコミュニティの姿勢は、技術的な美徳の一つだった。我々はソースツリーに将来のサポートが保証されないコードを望まず、壊れたデザインを入れておくのを良しとせず、純粋で美しいデザインを求め、間違っていたり不完全に実装されたアイデアの痕跡をソースコードツリーから残らず削除することを望む。

そして我々はその美徳を実践した。

我々は、もっと良い方法があるからといって API を軽視した。それに「このアプローチはうまくない」というだけで機能を削除した。その「うまくない」には「セキュリティホールだから」というのもあったが、「新しいスタイルに合わないから」というものもあった。

我々はオペレーティングシステムの核となるサブシステムを下手な移行の仕方で交換した。互換レイヤを導入したものの、それは実際には互換性がなかったし、メンテナンスもされなかった。「これうまく動かない」という指摘があると、コミュニティの反応は大抵「お前が間違っている」だった。

100%フリーなオペレーティングシステムを使い、またそれのあらゆるコンポーネントにパッチをあて、アップグレードしてシステム更新を最新状態に保てる限りシステムは良好だが、不備が解決されるにせよそれは数ヶ月続けるのもただ不便なだけだった。

問題の二番目の側面は、どの Linux ディストリビューションもどのコアコンポーネントをシステムが使用すべきか意見が一致しなかったことだ。意見が一致しなかったし、移行スケジュールも同期せず同じ機能を実現する競合する実装が存在した。

カーネルやコアライブラリ一式を標準化する試みは、権力志向の今一番いけてるディストロ狙いに台無しにされた。勝ち組は他のディストリビューションが追いつく手助けとなるような譲歩をしようとは思わなかった。非互換なことで市場シェアを得る道が生まれたのだ。Linux 界における800ポンドのゴリラに採用され続ける戦略である。

要約すると、(a) 第一の要因:物事があまりに早く変化し、オープンソースも独占ソフトウェアも同じように壊れる。(b) Linux ディストリビューション間の非互換性。

これがデスクトップ分野で Linux をターゲットとしようとするサードパーティの開発者のエコシステムを殺した。一度は挑戦して、「トップ」ディストロや寛容な人なら「トップ3」ディストロをサポートするのに最善を尽くすだろう。それで知ることになるのは、6ヵ月後にはそのソフトウェアがもう動かないということだけ。

デスクトップ分野の Linux サポートは、独立系の開発者にとって負担になったのだ。

しかしこの段階にいたっても、Linux 界の人たちはすべてをオープンソースソフトウェアで作れると信じた。ソフトウェア業界は概してホームランが少なかったので、スプレッドシート、ワードプロセッサ、デザインプログラムを自力で実装できると確信していたのだ。実際、見事な仕事振りだった。

Linux は信頼できるパッケージ管理と最も進化したソフトウェア更新システムを開拓した。その目標と文化を考えれば、我々は優れた仕事を行った。

しかし、我々は全体像を見失った。その過程でサードパーティの開発者を遠ざけてしまったのだ。Apple OSX の AppStore に息づくエコシステムは、今日の Linux にはまず達成不可能なものだ。

https://www.yamdas.org/column/technique/linuxdesktopj.html