2012-03-04

Linuxについて少し調べた

実は、私はLinuxについては、だいぶ前、まだコンピューターを持っていなかった頃、少々学んでいた。というのも、当時まだコンピューターを持っていなかった私は、書物(当時はまだ紙の本に価値があったのだ!)の知識から、どうもLinuxの方が優れているOSだと思っていたらしい。宗教論争を引き起こしそうな話題はともかく、当時の私は、結局、日本語環境の貧弱さとゲームとを理由に、Windowsを使うことに決めた。今から10年以上前の話だ。

どうも私は変人と思われているらしく、twitterをエゴサーチしてみると、私がLinuxにダメ出しするだろうというtweetを目にする。まあ、確かに、私は常に物事を否定するところの霊であった。中学時代からの私の友人は、「何事にも否定的」と評した。否定した結果、今の位置にいるのだとすると、あまり否定すべきではないのだろう。

閑話休題、今のLinuxはどうなっているだろうかと、最近の事情について調べたところ、どうも、色々と思うところがある。

まず、「選択肢がありすぎる」ということだ。選択肢というのは難しい問題だ。テキストエディターならいくら選択肢があっても構わないが、そういう問題ではない。フリーなソフトウェアなのだから、別に存在しても構わないだろいう意見もあるかもしれないが、そのフリーは、問題の原因の一部かもしれない。問題は、あまりにも一般ユーザーが気にするべきことではない選択肢が多すぎるのだ。

例えば日本語入力の仕組みだ。Linuxでの日本語入力の実装は、クライント/サーバーのような形になっている。サーバーはかな漢字変換を提供し、さらに目的のアプリケーションとかな漢字変換のサーバーとの間の橋渡しをする仕組み、IMがある。かな漢字変換のソフトウェアに選択肢があることはいいことだ。ただし、橋渡しの役割をするIMまで多数の選択肢がある。これはどういうことだ。

端末とMuleに関する問題はひとまずおく。X Window Systemの問題を考える。Xには、XIMというIMがある。しかし、現代ではXIMはかな漢字変換サーバーからは、あまり使われていない。Xが別のAPIを制定したのかというと、そうでもない。Xの外でXIMへの互換機能を提供しつつ、さらに独自機能を提供するIMが乱立しているのだ。例えば主要な三つを上げると、SCIM、iBus、uimだ。誰もが、自分の使っているIMこそが一番優れていると主張して譲らない。だから、どういうことになるかというと、変換サーバーからそれぞれのIMへのバインディングが提供されている。どれを使っても動くというのは素晴らしいことだが、特にこだわりのないユーザーまでもが、どれかを選ばなければならない。何故一つに統一しないのか。そもそも、なぜX本家の仕様をアップデートしないのか。

もちろん、何もこれはXに限った話ではない。ことIMEに関して言えば、Windowsだって、IMM32からTSFとの移行があまりうまくいっていない。しかし、少なくともWindowsユーザーは、IMM32とTSFの何たるかを知らずに日本語入力ができる。

およそ一般的なユーザーは、猿程度の知能を備えていると考えるべきである。彼らはプログラミングが何を意味するのか分からず、コンピューターとOSとインターネットとブラウザーとGoogleの区別がつかない。テキストエディターやブラウザーを変更させるのだに相当の労力がかかるのだ。いわんやIMをや。IMという低レベルなソフトウェアは、およそ一般ユーザーが気にすべきものではない。たとえどんなに簡単なGUIの設定プログラムを用意したって、使いやすい自動化されて統一されたパッケージシステムを用意したって、低レベルなものは低レベルなのだ。学ぼうと思えば、いくらでも詳細は学べるが、すべての詳細を学ぶのは現実的ではない。これでは、いつまでたってもLinuxは一般ユーザー向けのデスクトップOSとしては普及しない。普及する技術が、オタクの考える技術的に優れているかどうかは、また別の問題なのだ。

これは、フリーなソフトウェアの問題である。フリーなソフトウェアはforkするのが容易なのだ。だから、多数の選択肢ができてしまうのだ。選択肢が増えるのは、良い事ばかりではないのだ。

もちろん、これらの低レベルな選択は、ディストリの仕事だろう。ディストリによって適切なデフォルトのソフトウェアがあらかじめ設定してあるべきなのだ。

思うに、UbuntuがコアなLinuxユーザーから批判されているのは、Ubuntuがあまり選択肢を提供していないからではないかと思う。特に、Ubuntuのデフォルトの設定は、かなり独断的に行われている。しかし、Ubuntuも他のLinuxディストロと同じように、変えようと思えばいくらでも変えられる。だから、Ubuntuを批判しているのは、自力で変更する知識と能力のないユーザーではあるまいか。

その他の感想として、wineがある。どうも調べたところ、最近のwineは結構やるらしい。またwinegccが非常に興味深い。これは、いわば逆Cygwinともいうべきgccをラップしたスクリプトで、mingw用のコードをほぼ改変せず、Linux用のコードを吐くgccで、winelibを使ってコンパイルできる。もちろん、実行にはwineが必要だが、これを使うと実に面白いことができる。Cygwinの逆ができるのだ。つまり、Linuxネイティブなバイナリからwineの実装によるWin32 APIを使うことができる。もちろん、Linuxのsyscallも可能だ。

No comments: