ソフトウェア技術者を育てるソースコード

オープンソースソフトウェア(フリーソフトウェア)をめぐり、やれコスト削減だ、 セキュリティだ、信頼性だ、なんだかんだ、と喧しい。 しかし忘れられがちではあるが重要な利点がひとつある。 それはソフトウェア開発者にとってオープンソースソフトウェアは生きた教材であり、 IT技術者育成に重要な役割を果たす可能性を秘めているということだ。

独学で学ぶオープンソース開発者

以前本コラムでも紹介があったとおり、 昨年秋に弊社ではオープンソースソフトウェア開発者に対するオンラインアンケート調査(FLOSS-JP)を実施した。 本調査は日本におけるオープンソースソフトウェア開発者 (ドキュメント担当などオープンソースプロジェクト関係者を含む) の実態を明らかにすることを目的として実施され、 547名のオープンソースソフトウェア関係者から回答が寄せられた。 その結果は詳細に分析され、結果のレポートも公開されている。

その中で、興味深い項目がひとつある。 それは「OSS/FSの開発に関する知識を学んだ場所」という項目だ。 選択肢は、選択の多かった順番に並べると、 独学、企業の実務、コミュニティ、大学(情報系)、大学(理工系)、その他、 アルバイト、専門学校(情報系)、企業の研修(OJT含む)、専門学校(情報系以外)、 大学(それ以外)、セミナー、となる。

さて、この選択肢のうち、実に62.5%が「独学」で学んだと答えている。 およそ3人に2人は独学派という高い割合である。 この傾向は、欧米版のFLOSS調査でも同様の結果だった。 独学派の教科書は、もちろん、ソフトウェアのソースコードである。

筆者もいくつかのオープンソースプロジェクトに関わっているが、 自らリーダを務めるプロジェクトではそのソフトウェアのデザインに関して既存のオープンソースソフトウェアから随分と影響を受けたものだ。

独学が多数を占めている、ということについては、 設問があまり適切ではなかったとの反省もある。 独学という回答の中には、コミュニティから学んだ、 というケースがかなり含まれていると考えられる。 例えば、カーネルのソースコードを読むことはコミュニティから学ぶことにはなっていないのか、とか、 独学で分からなかったところをMLで質問して解決したというような場合はどうなのか、 といった混乱が生じていた。

オープンソースソフトウェアとスキル開発

ところで今年の2月にインドで開催されたLinuxAsia2004でも示唆に富む発表が行なわれていた。 FLOSS調査プロジェクトリーダのRishab Aiyer Ghosh氏による発表で、 何故開発途上国がOSSを必要とするのかに関するまとめである。 氏の報告では、 途上国でオープンソースを重用する重要なポイントは以下の3点と指摘されている。

  • コスト
  • 性能 (自由度、ローカライゼーション)
  • スキル開発

ここでは、とくに最後のスキル開発に役立つという意味をよく考えてみよう。 発展途上国において、オープンソースソフトウェアがスキル開発に役立つという その理由は次の通りである。

プロプラエタリな環境では新たに開発を始めるには開発環境を購入したり、 開発情報を得るために何らかの会員になったりしなければならない。 すなわち開発に向けて、ある種の参入障壁がある。 一方でオープンソースソフトウェア開発では、 既存のソースコードが有用な情報源となる。その入手コストは非常に低い。 また開発環境を揃えるコストも低い。 結果としてスキル開発に必要となるのは時間と努力のリスクだけであり、 人材育成に対するバリアが低い、ということになる。

もちろんこの理屈は発展途上国に留まるものではない。 手軽にソフトウェア開発を学ぶことができるという利点は、 ソフトウェア開発者人口の裾野を拡げることに繋がり、 日本においてもIT産業振興に一役担うことが期待できるだろう。

「学ぶ」は「真似ぶ」

ソフトウェア開発を学ぶ者にとって、ソースコードは最良の教科書なのだ。 時として反面教師たることもあるが、多くは優れた例題を与えてくれる。 まずは良質なソースコードを鑑賞するところから始めたい。 幸運なことに、オープンソースソフトウェア、フリーソフトウェ アは現在あらゆる種類のアプリケーションとソフトウェアライブラリをカバーし ている。自分のやりたいことに近いソフトウェアを探し出し、そのソースコード をじっくりと読んでみよう。

最後に余談をひとつ。

技術取得に修行が重要なのはいずこの世界でも同じである。 ハッカーに語り継がれる慣用句のひとつに、 「Read the Source, Luke!」といった言葉がある。 ソフトウェア業界にダースベイダーは居ない(?)が、 かくしてオープンソースソフトウェア開発者は日夜研鑽を積んでいるのだ。