ソフトウエアを普及させるために重要なことは何だろうか---10月末に行われたIPA(独立行政法人情報処理推進機構)のOSSカンファレンスでそんなことを考えた。

 この日行われたのは,日本OSS貢献者賞の受賞式や,未踏ソフトウェアで天才プログラマに選ばれた技術者の講演など。各々がソフトウエアを作り上げ,多くの人々に使ってもらうための苦労を語った。その内容を紹介したい。この日登場したのはいずれもオープンソース・ソフトウエアだが,商用ソフトウエアを開発する方にとっても参考になる内容が含まれていると思う。

理論ではなく,泥臭い現場のニーズ

 2006年度の日本OSS貢献者賞に選ばれたのはJ2EEフレームワーク「Seaser2」を開発した比嘉康雄(ひがやすを)氏,マルチプラットフォームGUI開発/実行環境「WideStudio/MWT」を開発した平林俊一氏,メール・クライアント「Sylpheed」を開発した山本博之氏,IPv6プロトコル・スタック「USAGI」を開発した吉藤英明氏の4人だ。

 Seasar2はひまわり証券やNTTデータ イントラマートの「intra-mart Framework」に採用されるなど,すでに数多くの業務システムに採用されている。比嘉氏には何度かお話をうかがったことがある。筆者が特に印象に残っているのは「業務システム開発の現場で使えることを目指して開発した」という比嘉氏の言葉だ。

 Seasar2はDI(Dependency Injection)コンテナと呼ばれるフレームワークで,モジュール間の独立性を高めることでシステムの柔軟性を向上させる。DIコンテナには海外に「Spring Framework」という有力なオープンソース・ソフトウエアがある。にもかかわらずSeasar2が普及したのは理念先行ではなく,「現場で使えること」を念頭に置いて開発してきたためだ。例えばDIコンテナはモジュール間の関係を記述する設定ファイルが大きくなりがちだが,Sesasar2では設定ファイルを極力排除した。比嘉氏は,電通国際情報サービスのSI部門で金融システム向けフレームワークの開発などに携わってきた。実際の開発現場で何が生産性を低下させるかをその目で見てきた。

 現場のニーズがある機能は柔軟に取り込んでいく。「Javaで(PHPやRubyなどの)軽量言語に劣らない生産性を実現する」と比嘉氏は意気込む。実際に授賞式ではSeasar2と関連オープンソース・ソフトウエアにより,コードを一行も書くことなく表形式のユーザー・インタフェースを備えたデータベース検索・更新用Webアプリケーションを作成するデモを披露した。Seasar2の上に構築された「Uuji(うーじ)」と呼ぶ新しいフレームワークだという。

新技術でなくとも,たゆまず実装する

 「ただコツコツといろいろなOSに移植していった」と平林俊一氏は言う。平林氏が開発したWideStudio/MWTは,Linux,Windows,Windows CE,iTRON,T-Engine,Solaris,FreeBSDなど様々なOSで,同じソースコードでGUIアプリケーションを動かすことができるツールだ。WMTはマルチプラットフォームのC++ GUIライブラリ,WideStudioはその統合開発環境である。Eclipseのプラグインである「Native Application Builder」も公開している。

 ウインドウ・システムのないOSでもGUIを実現するため,画面部品はすべて自前で実装した。平林氏は,本業をこなしながら帰宅した後の12時から3時までをWideStudioの開発にあてた。ソースコードは80万行になった。

 枯れた技術を使ったため,Javaなどに比べMWTは軽く速かった。他に同じ努力を継続したプロジェクトは他になかった。それが海外を含め数万人と言われるユーザーの支持を得た。

自分が使いたいものを作る

 メール・クライアント「Sylpheed」を開発した山本博之氏は「既存のメーラーに満足できず,自分が使いたいと思えるメール・クライアントを作った」と語る。「操作性は常に改善しており『かゆいところに手が届く』,『軽快な動作速度』にこだわっている」という。

 Sylpheedは現在30カ国語以上に翻訳され,多くのLinuxディストリビューションに収録されている。LinuxカーネルのメンテナでLinus Torvaldsの右腕と言われるAndrew MortonもSylpheedを使っていた。またフィンランドNokiaが5月25日に発表したLinux携帯端末「Nokia 770 Internet Tablet」にも採用されている。

世界に売り込む,信用を積み上げる

 吉藤英明氏が中心になって開発したIPv6のプロトコル・スタック「USAGI」はLinux本体に統合されており,カーネルの一部として配布されている。

 USAGIの開発を始めたのは,当時のLinuxのIPv6実装の品質が不十分だったためだ。吉藤氏らはWIDEプロジェクトのもとでBSDのKAMEプロジェクトとも連携し,USAGIを実装した。

 技術的には自信があり,吉藤氏らはUSAGIを本体に組み込むようLinuxコミュニティに提案した。しかし,USAGIはなかなか採用されなかった。言葉の問題もあり,USAGIプロジェクトがLinuxコミュニティに十分に理解されていなかったためだ。

 そこで吉藤氏らはUSAGIプロジェクトへの“信用”を積み上げる努力を行った。IPv6 Forumの認定ロゴを取得したり,カーネル開発者が集まるOttawa Linux Symposiumに出席して議論した。

 こうしてUSAGIプロジェクトを理解してもらい,さらに取り込みやすいように再構成することなどにより,USAGIはLinuxカーネルの正式な一部となった。

Googleがいつも勝つわけじゃない

 言うまでもなく,この日登場した,成功をつかんだ一握りのソフトウエアの背後には,消えていった多くのソフトウエアがある。

 この日最後に,サイボウズ・ラボの奥一穂氏が未踏ソフトウェアのスーパークリエータとして講演した。奥氏は,英語サイトのメニューを日本語化するFirefoxの拡張機能「Japanize」の作者である。Japanizeは,各サイトに対応した変換テンプレートに基づきWebサイトの画面を日本語化する。テンプレートは人力で作るため,日本語化されるのはメニューだけだが,自然な翻訳になる。

 YouTubeやGoogle Calender,Diggなどのテンプレートがあるが,全体のうち奥氏が作成したテンプレートは一部で,大部分のテンプレートがユーザーにより作成されている。Japanizeは公開後2カ月でアクティブユーザー1万3000人,対応サイトは130,翻訳者は150人になった。一人で開発したプロジェクトとしては大きな成功を収めたと言える。

 奥氏は,Japanizeが成功した理由を「誰でも参加できる敷居の低さと,翻訳データがすべてのユーザーから共有できること」を挙げる。テンプレートは正規表現も使えるが,用語の対応を記述していくだけでもいい。

 敷居の低さはよいことだけではない。ある時,mixiの英訳テンプレートを作成した翻訳者がいて,全ユーザーがmixiにアクセスすると画面が英語になってしまうという“事件”があった。しかし,mixiの英訳は3時間後に別の翻訳者が削除し,翻訳者間の話し合いでルールの合意が図られた。

 「YouTubeがGoogle Videoに勝ったように,頭のいい人が成功するわけではない。やってみなければ分からない」と奥氏は言う。「Japanizeは独創的ではなく,無難でもない。それでも“やってみる”ことのできる環境があり,喜んでくれる人がいた」(同)。「『試す』ことができるのは,プログラマだけ」と奥氏は言う。

失敗しよう,知らない人を信頼しよう

 オープンソース・ソフトウエアは気軽にプロジェクトを始められる分,やめるのも簡単だ。“成功率”は商用ソフトウエアよりおそらく低いだろう。

 しかし,開発にかかる人的,資金的コストは圧倒的に低い。だから気軽に失敗できる。何度失敗しても,何回方向転換したっていい。最終的に1回,成功しさえすれば。

 どんどん失敗しよう。どこの誰か分からない人を信頼しよう---かつてなら非常識と言われたかもしれない。しかし,インターネットがもたらした,圧倒的に低いコミュニケーション・コストとそこに存在する無数の頭脳は,このような“非常識”なやり方を,イノベーションを生み出す最も効率のよいやり方に変えてしまったのではないか。もちろんリスクはある。しかしそのリスクを飼い慣らす意識や制度を持つ社会が,最も豊かなイノベーションを享受できるのではないか。そんな気がしてならない。