目次


オープン・ソースを巡る話題

第 2 回 オープン・ソースこそが次世代の“ハッカー”を育てる

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: オープン・ソースを巡る話題

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:オープン・ソースを巡る話題

このシリーズの続きに乞うご期待。

オープン・ソースこそが次世代の“ハッカー”を育てる

昨年(99年)の 8月末に、通産省が、5年間で 100 人を選んで最高一億円を研究開発費として補助する、というプランを発表しました。いわゆる天才級プログラマーを育てようというもので、それが今年、そろそろ始まろうとしています。まさにアートのレベルまで行ってしまうようなハッカーを育てる場を、我々先輩が設けなきゃいけないと常々考えているんですが、そのために国がお金を出してくれるのなら喜んで協力しようと思い、私も少しお手伝いしています。

ハッカーというと悪いイメージを浮かべてしまうかも知れませんが、昔は自慢していたものです。例えば今夜遊びに行く?って言われても、いや、今ハック・アタックが来たからって言ってコンピューターに向かう。ハック・アタックというのは、夜中突然プログラムしたくなって、その一晩ハッキングすることを言う。それはいいことなんです。ハックするっていうのは、プログラムをハック、つまり切ってくっつけ合わせる、掛け合わせるということです。クラッキングとどうも混同されている部分がありますが、本来はすごいプログラムを作るということ。そのような、本来の意味でのハッカーを見つけて育てあげるということを国のお金でやるというので、私も一世代前のハッカーとして(いえ、もちろん今でも現役ですが)役に立てればと考えているんです。

ハッカーはどう育つのか

苫米地英人では、そういう場所でどういう人たちを育てたらいいのか。

いや基本的には、本来「育てなくてよい人が育つ場所」が欲しいわけです。

例えば私の会社は、さすがに大きなメーカーではありませんので、特殊な分野に特化しなければなりません。それは、ソフトウェアにおける超ハイテクな会社という特化です。だからエンジニアのスクリーニングもすごく厳しくしていて、「プログラマーになりたいです」と言ってくる人はお断りします。プログラマーしか採用していないのに。それはなぜかというと、プログラマーはなりたくてなるものじゃなくて、生まれてくるものだからです。これは例えば音楽で考えてもらうと同じことで、音楽家は、勉強しなくても、物心ついたらすでに音楽家でしょう? プロになれるかどうかはチャンスの問題でしょうが、少なくとも音楽家というレベルでは、それは生まれてくるもので、こちらから教えるものではない。目の前にピアノがありさえすれば、そして本物の曲を耳にしていれば、いつの間にか音楽家になってしまう才能というものがある。ハッカー級のプログラマーになるのも、実はそうした特別な才能の問題なんです。

しかしたとえモーツァルトといえども、いい音楽を聴いたことがなければ、モーツァルトになれなかったはずです。お父さんのピアノかどうかわかりませんが、とにかくどこかで本物の音楽を聴き、さらに目の前にピアノという楽器があったからこそ、大音楽家になれた。プログラマーも実は同じことで、その「いい音楽」に当たるものがオープン・ソースなんです。

今、「楽器」の方を手に入れるのは簡単です。パソコンですから。その気になればパソコンくらい親が子供に買ってあげられるでしょう。では何がないかというと、聴かせてあげる音楽、つまりソース・コードがありません。優れたソース・コードを目の前にぶら下げてあげさえすれば、生まれながらのプログラマーは、その瞬間に大プログラマーになれるんです。

もちろんそこは数学の一分野ですから、モーツァルトもどこかで楽典を学んだであろうと同じように、基礎的な理論は教えてあげる必要があります。例えば、天才プログラマーたちは、最初はあまりにも天才ですから、グローバル変数をバリバリに使って、レーザープリンタ用紙で言うと 10 枚くらいになる関数を書くことがある。確かに、速いことはその方が速い。しかしグローバル変数の値を変えることが副作用を生み、それがバグのもとになるというのはプログラミングの基本です。そこで先生がプログラミングしてみせると、そのグローバル変数は一つもなく、3 行、4 行の関数がずらりと並ぶ。それがあらゆるソフトウェア・エンジニアリングの方向性で一番の正解なんです。

それを天才プログラマーが見ると「なんで?」となる。でも、彼らならば「こういうわけで」と説明しなくともわかるんです。目の前にソースをぶら下げられ、読んだだけで、「あ、なるほどこの手があったか!」と、または「なるほどね、これが正しい LISP のシンタックスなんだ、Java のシンタックスなんだ」というように学ぶことができる。それが才能というものなんです。

「いい音楽を聴かせる」意味

いわゆるコンピューター・サイエンスは、音楽でも同様ですが、プロをどういう形で育てるかが問題です。モーツァルトもたぶんどこかで楽典を習ったでしょう。プロになる時には、プロとしてのセオリーを学んでいなければなりません。そこがプロと素人を分けるポイントですから。だから書いたプログラムは完璧に動かなければならないし、逆に止まらなければなりません。最近でいうと、マルチスレッドをやるからには、遅延評価の技を教えないとしくじることがある、というような「技術」をいつでも読んで学べるようなソースを、絶対どこかに置いておかなければならないわけです。

そのシステムさえできれば、プロの素材を見いだすのは簡単なことです。ソース・コードを目の前にぶら下げておけばいいんですから。目の前にコンピューターという楽器があって、素晴らしいソース・コードがぶら下がっていれば、持って生まれた才能があればその人はもう、すぐにプロになるでしょう。

私の会社の中にも過去に書いた LISP のソースがたくさんあるので、それをどんどん出して行きたいと思っています。同様に「4年、5年に 1 度に書ける美しいプログラム」を何十人かの人が持ち寄って並べておいたとしたら、それを見てモーツァルトが育つ可能性があるわけです。それが要するに、オープン・ソースの本当の意義なんだろうと思います。

苫米地英人氏 略歴

生年月日
1959年 9月 7日
学歴
1981~1982年 マサチューセッツ大学コミュニケーション学部
1983年 上智大学外国語学部英語学科卒業(言語学専攻)
1993年度 カーネギーメロン大学博士(Ph.D.) 研究論文: 41 編
職歴
1985~1987年 Yale 大学大学院計算機科学科助手、Yale 大学人工知能研究所フルブライト研究員
1988~1992年 Carnegie Mellon 大学(CMU)計算機科学科研究員
1990~1991年 ATR 自動翻訳電話研究所滞在研究員
超並列処理アーキテクチャーと超並列自然言語処理を研究
1992年10月 徳島大学講師(工学部知能情報工学科) 担当科目: 情報システム工学、データベース
1993年8月 徳島大学助教授(工学部知能情報工学科) 知能情報工学輪講、並列分散処理システム等
1995年1月 株式会社ジャストシステム 本社開発本部ディレクタ、東京研・基礎研所長兼務
1996年1月 通商産業省情報処理振興審議会専門委員
 4月 ジャストシステム ピッツバーグ研究所(JPRC)取締役兼務
1998年2月 コグニティブ・リサーチ・ラボラトリィズ株式会社取締役
 3月 高度情報化支援育成事業「ネットモバイル強化型の汎用動的計算機構の設計と構築」(9 情技応第 837 号)プロジェクト代表
 11月 コグニティブ・リサーチ・ラボラトリィズ株式会社代表取締役社長
 12月 先導的コンテンツ市場整備事業「使用による課金を実現する流通・供給・再利用の高度化環境の開発」(MMCA-2005)プロジェクト代表
1999年2月 先進的情報システム開発実証事業「次世代統合型ネットモバイル オンライン スーパーの実証事業」(11 情報開・実第 128 号、2-2-103)プロジェクト代表
 4月 マルチメディアコンテンツ振興協会法務委員会委員、国際交流委員会委員兼任
 12月 家庭等の情報推進化事業「次世代動的分散共有 VM 型ホームサーバシステムの開発」(11 情技応 1373 号)プロジェクト代表
2000年4月 文部省領域研究ゲノム情報科学高度化委員会委員

ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=232658
ArticleTitle=オープン・ソースを巡る話題: 第 2 回 オープン・ソースこそが次世代の“ハッカー”を育てる
publish-date=06012000