Saturday, December 11, 2010

LibreOfficeの発足から3ヶ月

時の経つのは早いもので、The Document Foundation (TDF)LibreOfficeが公式に立ち上がってから3ヶ月目になる。立ち上がった直後は正直どうなることかと思ったが、実際にこの3ヶ月に経験したことを振り返って見るとやはりフォークして正解だったと思う。

OOo時代の時にはコードの改良や開発効率の向上などの案はあってもそれが提案できる環境ではなかった。コミュニティから来る提案は全てOracle勢のフィルターにかけられ、それが彼らの内部の開発陣やマネジメントからOKされなければ、いくら外部の我々の効率の向上に繋がろうとも許可は降りなかった。それどころか決定権は、常にOracle内部(というかハンブルグ開発陣内部と言った方が的確か)の限られた人間が常に握っていた。で、その意思決定のプロセスは外部には常に説明されることは無く、外部の人間にはその決定内容だけが享受される、という仕組みであった。透過性など全くあったもんでは無かった。こんな状況で、やる気のあり経験もあるハッカーが集まってくるわけがなかろう。自分もよくあんなところで3年間もよく我慢してたなぁと逆に感心さえしてしまう。Novellから給料もらって仕事としてやっていたからこそ我慢できていたからであって、そうでなければさっさと辞めていたと思う。と言うか自分は一度離れる決意をしているんだよね。その後すぐにNovellに拾われた、と言うわけだ。

前にも散々言ったと思うがOOoのコードは古くて汚いコードで充満している。STLやC++の標準化がなされる前に書かれたコードであるから変なマクロとかがそこら中にある。前々からそれらのコードをもっとSTLやBoostを使って見やすく綺麗にして、コード自体をもっとシンプルに読みやすくするのが夢であったが、上で説明したような官僚的な状態であったので、それを提案するのも億劫であった。というか提案するだけ無駄である。以前不要になったコードの一層削除を申し出たこともあったがそれすらも却下されてしまった。ひどい状態だった。それがLibreOfficeになった今、そのような理不尽な制約が取れて、意思決定も我々開発陣の手で出来る用になった。ようやく手にした自由である。

僕はコードベースというのは家のようなものである、と思っている。普段は多少散らかっているかもしれないが、人が訪ねて来る度にある程度綺麗にする。これは常識である。ここで言う訪問者というのがハッカーであって、新しいハッカーを寄せ集めるためにはまずコードベースを綺麗にしておく必要がある。そうでなければ誰も来たがらない。これもまた常識である。でも住んでる人間にとってはもうその散らかった状態に慣れてしまっているので、どんなに散らかっていてもあまり気にならない。そんな環境に何十年も住んでいると、もう綺麗にするという必要性さえ全く感じなくなってしまう。それどころか誰かが綺麗にしようとすると、それに反発さえしてしまう。だから最終的には誰も寄ってこなくなる。

LibreOfficeになってから、やっとコードベースの大掃除が出来るようになった。とはいえうちらもバグの修復や機能の実装などもしなくはならないので、四六時中コードの整理整頓ばかりはしてられないのだが、幸いにも同じような考えを持つ有志達が現れたお陰で結構なペースでclean upの作業は進んでいる。この3ヶ月の間だけでもLibreOfficeのコードは大分綺麗になったくらいだから、1年後にどのくらい綺麗になってるかは想像すらできない。以前とは雲泥の差である。コードを綺麗にすると、なぜか作業効率が上がったような錯覚に陥る。いや、それは錯覚ではなく事実なのかもしれないが、いずれにせよ気分は良い。この点だけでもLibreOfficeが出来た甲斐があると思う。

ただLibreOfficeになってから大変になった部分もある。インフラはもはやOracleの提供するものには頼れないので自分達で調達する必要がある。LibreOfficeのような大規模なプロジェクトの場合は特にそれに一苦労する。でもふたを開けてみたらなんとかなるものである。GitレポジトリやBugzilla等は、Go-OO時代からお世話になっているFreeDesktop.orgのを使い、ダウンロードのミラーはMirrorbrainにお願いし、メーリングリストとウェブサイトだけをTDFでなんとかする、という手筈になった。で、それらを運営できるだけの資金がありがたいことに集まってきたようなので、取り敢えずは安泰である。

全体的に見て、とりあえずLibreOfficeは良いスタートを切ったと言いきれるだろう。この勢いを止めることなく、LibreOfficeのために自分の出来る限りのことをとことんやり続けるのが自分の今の目標である。