Linuxデスクトップの思い出 #29

公開日: 2012-02-27


私がLinuxを使い始めたのは1996年頃だ。Unixのアイディアに感化されたとか、リモートで別のマシンに入って操作できるみたいなところが気に入って夢中になった。それに、当時主流だった Windows 95 より軽快で安定しているように見えた。そんな流れで、Linuxをメインの環境として使うようになった。

ウィンドウマネージャーのカスタマイズは楽しかった。fvwm を AfterStep に変更してカッコイイだろう!と喜んだりしたものだ。ウィンドウから枠を取り払って、すべてキーボードで操作する、なんてことにも熱中した。まったく、Ryan Dahl 氏のいう何も分かっちゃいない奴だけど(昨日のポストを参照のこと)、当時Linuxを使っていた人は多かれ少なかれこういう時期があったんじゃないかと思う。GNOMEが登場したときは、これからすごいことが起きるのだと興奮したものだ。

が、時間が経つにつれ、その熱も次第に冷めていった。Linuxの方が軽快にみえたのは、ただ単に kterm とか xeyes みたいな軽いアプリしか動かしていないからそう思っただけで、Netscape 4 のような巨大なアプリを動かすと Linux の方がむしろ重かった。その上、日本語フォントは汚いし、日本語入力を使えるようにするのは至難の業だし、印刷にいたっては不可能に近かった。Windows 2000 でNetscapeを使うほうがよほど快適なのだ。

それでも、Linuxへの愛着は根強く、長い間、メインの環境として使い続けた。が、それも2003年頃に終わりを告げた。新しいノートPCを買って、Linuxを入れようかと考えたとき、このまま Windows XP で使い続けた方がいいと思いとどまったのだ。Linuxを入れてまたあのセットアップをやると考えたら、気が滅入った。

この選択は正しかった。Windows XP に日本語パッチの当たった PuTTY[ 1] を入れたら、もうそれで十分だったのだ。データセンタに置いてあるLinuxのサーバにPuTTY でログインすれば emacs でも gcc でも、私が使いたいものは何でも使えるのだ。私がLinuxで好きだったのはこういった端末から使えるツールであり、GNOMEアプリではなかったのだ。

以来、Linuxデスクトップから遠ざかった。自宅では使わなくなり、仕事の開発環境として使うときには、ブラウザと端末しか動かしていない。大昔は Emacs をXアプリとして動かしていたが、今は端末の中でしか動かさない。日本語フォントやら日本語入力やらの設定はもうやりたくないのだ [2]。もしかしたら、今はもう簡単になっているのかもしれないが。

そんなわけで、自宅では長らく Linuxデスクトップを使うのをやめていたが、数か月前に、仕事の都合で自宅にLinuxの開発環境をセットアップする必要があり、Ubuntu 11.04を入れてみた。デフォルトのデスクトップは Unitiy [3] と呼ばれる新しい環境だ。

恐れていたように、Unityは使いにくかった。というより、今までやっていたことをどうやるかが分からず、かといって、わざわざ調べて覚える気も起きないのであった。古いGNOME環境に戻そうかとも思ったが、そういうカスタマイズはいやだ。デフォルトのままできるだけ使いたい。結局、ブラウザと端末を左側のメニューに追加するところまでは何とか覚えて Unity をそのまま使い続けている。

ところで、GNOME は(UnityはGNOMEのshell interfaceという位置づけらしい) GLib [4]というライブラリの上に構築されている。GLib はC言語でC++と同じような機能を提供するものなのだが、コンテナーは void ポインタだらけで type unsafe だし、オブジェクトシステムはクラス一つ定義するのに100行の boilerplate が必要だし、コールバックをやるにはプロセス内にも関わらずなぜかオブジェクトのシリアライズが必要だし(glib-genmarshalっていうクールなツールがあるんだぜ!)、C言語なので当然メモリ管理は手動、という私からみると、複雑怪奇で error prone な代物だ。

こういうものを土台にして GNOME のような巨大なものが作れてしまうというのは、ある意味すごいことだと思う。でも、この世界に今から入って開発をやりたいという若者はいないんじゃないだろうか。。

[1] http://www.chiark.greenend.org.uk/~sgtatham/putty/
[2] http://0xcc.net/blog/archives/000170.html
[3] http://unity.ubuntu.com/
[4] http://developer.gnome.org/glib/

Satoru Takabayashi