オープンソースの目指す世界
オープンソースの方向性について、それは十数年前のものとはだいぶ変化してきているように思う。「伽藍とバザール」を著したEric S. Raymondの「真のプログラマたちの回帰(The Revenge of the Hackers)」 の中で、オープンソース運動はマイクロソフトへの抵抗運動のような印象を感じさせるが、その目の敵のようにされたマイクロソフトはオープンソース支援 を始めている。以前は「オープンソースは破綻のモデルだ」 と言っていたのだが、最近は「オープンソースは我々のビジネスに悪影響を及ぼさない。むしろ、ビジネスチャンスをもたらしている。現にオープンソース陣営はマイクロソフト以外のOSのみならず、Windowsで走るソフトウェアも同時に開発しているではないか。」といっているようだ。さらに、マイクロソフトの最高経営責任者のスティーブ・バルマー氏はDeveloper Forum 2009の講演 で「デベロッパ、デベロッパ、デベロッパ」としきりに開発者支援を謳っている。(開発者とはオープンソースを含めた全てのWindowsプログラマのことのようだ。)
オープンソースというと公平で民主的なイメージを懐くかもしれない。無料で使用でき、プログラムの設計図であるソースコードが入手可能で、修正して使ってもかまわないとされている。いかにも利他的で申し分のないように思える。しかし、実際は違うようだ。オープンソース・コミュニティは一部のコア・メンバが支配する社会で、外部のプログラマが斬新なアイデアを持ち込んでも、拒否されるケースが多いといわれている。LinuxはUNIXを模倣したものであるように、多くが既存の商用版をモデルにして作られている。世界中に散在するプログラマがお互いの顔を見ることなくシステムを作り上げることができたのは、既に稼動している商用システムを仕様書としたからである。そこへ馴染みのない新しいアイデアを浸透させようとするとコミュニティは空中分解を始める危険があるのだ。佐藤一郎氏の「オープンソースの理想と現実」 に紹介されているのだが、よく納得させられた。
「オープンソースでシステム開発」と聞くと、きっと自由にのびのびとプログラムが書けるのではないかと期待が膨らむだろう。経営者も制作費が安くなるのでは、と考えることだろう。しかし、OS、DB、コンパイラやライブラリといった開発環境は無料だが、プログラマの人件費は必要だ。オープンソースは『問題があれば自らソースコードを開いて修正せよ』と言ているのと同じであるから、むしろ開発期間は無限に伸びる可能性がある。開発者の高いスキルが求められるのはなんら変わらない。『商用版の開発システムを採用しておいたほうがベンダのサポートを受けられたはずだ』と後悔することになるかもしれないのだ。
炊飯器、冷蔵庫、洗濯機などの家庭電化製品から自動車、飛行機、医療機器、原子力発電所など、ありとあらゆる機械にコンピュータが組み込まれる時代になった。ますます、プログラム開発者の需要は高まる一方である。しかし、その労働環境は過酷なNew 3Kの現場である。何日も徹夜残業が続くことなど珍しくない職場である。開発者の疲弊はプログラムのバグを誘発し、銀行システムのダウンや自動車のコンピュータの不具合など、重大な事故へ繋がっていく。解決策のひとつには労働環境の改善が重要である。
IT企業の経営者の現状を御存知だろうか。いつか言及しようと思っていたことだが。ほとんどの経営者が自分の会社で制作されたプログラムに目を通さないのだ。プログラマの経験がないか、あったとしても何年もやっていないため、最新の言語や開発環境を理解できないのだ。建築業や製造業で設計図を確認せずに開始する社長がいるだろうか。IT業界では信じがたいことが平然と行われているのだ。経営者はソースコードを確実に読めなければならないと考える。おそらく、無理だと言われるだろう。が、『経営者はスーパーマンでなければならない』と反論させてもらおうと思っている。
オープンソースの効用は何だろうか。開発コストを削減する効果があるわけではなさそうだ。コミュニティは民主的とはいえない。必ずしも技術的に高いレベルにあるとはいえない。従来の商用ソフトと区別することはできないように思う。しかし、利点があるとすれば、それはソースコードを見ることができるということだ。学校や研究機関では好材料であるが、それ以外の人々でもコンピュータを理解し、利用方法を考え出す機会に恵まれるだろう。何よりも嬉しいことはプログラマの苦悩を理解できる人々が増えることではないかと思う。それだけかもしれないが、それが重要なことなのだと思う。
だいぶ昔に聞いた話だが、「日本では浮浪者すら新聞を読む」と聞いて、とある開発途上国の人々が驚いたそうだ。日本人の識字率の高さが経済発展の礎になっていると説明された話のようだった。今日は電気を使う製品には必ずコンピュータが組み込まれる時代である。プログラムを読み書きできる人々を増やすこと、つまり、『デジタル識字率』を高めることが将来の発展へと繋がると考える。そして、このことをオープンソースが担う役目としてよいのではないかと思う。特定の大企業を痛めつけるためにあるのではなく、新聞のように広く人々に受け入れられた文化へと成長していくべきものと考える。
オープンソースを公開する理由
オープンソース(以下、OSSと称する)を公開することにしたのは、違法コピーの利用者に憤慨したのが理由だった。社会的に人格者とみられている医師、弁護士、学校の教師そしてお寺の僧侶までも、なんら臆することなく使用しているのだ。原因はどこにあるのだ、と考えるようになった。そして、いつしかOSSの公開を計画し始めたのだった。
OSSは個人や会社の中で利用する場合は改変コードを公開する必要はない。外部に展開する場合にのみ、だれでも入手できるようにしなければならないとされている。したがって、公開する必要はなかった。
ソースコードを入手できても、一般の利用者は修正して改良するどころか、単純に再コンパイルすることすらできないものである。呪文のようなコードと、英文のマニュアルしかない状況に困惑してしまうのが実情である。OSSのプログラマたちもまた、かつては初心者であった。幾つもの障壁を乗越えて作り上げたものを惜しげもなく無償で公開しているのだ。利用者にOSSを経験させること。このことが作者の苦労を理解できない利用者への最良のメッセージになると考えたのだった。
Open Watcomに取り組むようになった理由
マルチホスト環境でマルチターゲットのプログラムをビルドできるというのだ。すごいと思った。ほどなくして、販売元のライフボート社に注文し前金で支払ったのだった。が、なかなか製品は届かなかった。半年ほどして、なんと「暫定版」と書かれたCDが送られてきた。翌年、正式版も送られてきたのだが、英語表示のソフトウェアで、日本語版とは感じられないものだった。その後、Ver.11.0Jも手に入れてみたのだが、印象は変わらなかった。
当時、MicrosoftのVisualBASIC(以下、VBと称する)が大人気だった。これの仕事がよく入ってきた。VBは作り始めのころはサクサクと走ってくれるのだが、コード量が多くなるにつれ、非常に重く感じられた。そこで速度改善のために部分的にC言語に置き換え、DLLを作ってVBからコールするという方法をとることがあった。そのCコンパイラにWatcomC/C++を試してみたのだが、失敗に終わった。マニュアルの中にVBとリンクする方法がサンプルコード付きで説明されているのだが全くアクセスできなかった。ライフボート社に問い合わせするのだが、「あの記述は古いものです。WatcomC/C++も古いです。今のVBには対応できません。」ということであった。(現在はOpenWatcomのサイトに解決方法が記載されています。 )
そうしているうちに、1999年、ライフボート社はWatcomC/C++から撤退。半年ほどして開発元のSybase社も販売を中止してしまった。もう、あのコンパイラは終ってしまったな、と思ったものだった。しかし、ユーザからの要望は多かったらしい。Sybase社はオープンソースにすると発表したのだった。
2002年12月、最初のOpenWatcom公開。予定より数年遅れていた。どこのメディアも報道することなく、ひっそりとした旅立ちだった。
商品として販売されていた頃は『こんな出来の悪いコンパイラなんかブン投げてしまえ』と思っていた。しかし、オープンソースとなれば話しは違う。『自分流に作り変えて、美味しく頂きましょう』と、考えるようになったのだった。