ソースと文献

学者にとっての文献とプログラマーにとってのソースは似たような位置づけにあります。どちらも、勉強するために読むものです。ちゃんとした専門分野を持つ学者ならば、その分野で古典と呼ばれる重要な文献に目を通しているはずです。プログラマーにもいろいろありますが、世界中で使われている重要なソフトを開発したようなプログラマーは、やはり、多くの先人の業績を参考にしていると思います。

ですから、一流の学者と古典の関係は、一流プログラマーと重要なソフトのプログラムソースの関係と非常によく似ています。

しかし、一流と呼べない人に焦点をあてると、文献とプログラムソースの関係が変わってきます。

専門の学者でなくて、素人に毛がはえたような何かにちょっと詳しいくらいのレベルの人だと、古典に目を通している人は少ないと思います。私なんか典型的にそうです。原書どころか専門書にはほとんど触れることなく、テレビ、雑誌、せいぜい新書レベルの知識で好き勝手なことを言っています。「文献」という名に値する本なんか読んだことがありません。

しかし、一流でない普通のプログラマーが、プログラムソースに縁がないかと言うと、そんなことはありません。

プログラムソースは「読むもの」であると同時に、「コンパイルするもの」です。ApacheLinuxカーネルをのソースをダウンロードして自分でコンパイルする人はたくさんいます。カーネルをソースからコンパイルするなんていうのは、プログラマどころか、ちょっとLinuxに触った人なら専門知識がなくても充分可能です。(マシンが起動しなくなったりして、2〜3回は痛い目を見るかもしれませんが)

よって、素人に毛がはえたような段階を想定すると、文献とソースの位置づけが随分変わってきます。そして、どんな専門家でも自分の専門をちょっとはずれると、「素人に毛がはえたような段階」でしかありません。

ということは、自分の専門の隣接分野、周辺分野に対するアプローチの仕方が、「ソース」というものを扱ったことがある人と、「文献」というものを扱った経験しかない人では、大きな違いがあるのではないでしょうか。

実は、ある文系のエラい人が「技術者はコレコレで困る」という主旨の発言をしたと聞きました。断片的な又聞きなので、真相および詳細はわかりません。ただ、その「コレコレ」があまりにもリサーチ不足に感じられました。その人の言う「コレコレ」とは、全く違うプログラマの意見が、それこそゴロゴロしているのです。ちょっとリンク集でもたぐれば、一般論として「技術者はコレコレ」なんてとても言えないと思いました。

その人がネット上で発表した文章を読んだことがありますが、私はそれには感銘を受けました。その文章のレベルと、「技術者はコレコレ」のあまりのギャップに私は驚きました。

これは一般化できるのかどうかわかりませんが、文系の評論家や学者は不用意に無防備に隣接ジャンルで暴論を簡単に口にするような気がします。いくら専門外だからと言って、公の場で発言するのに、なぜ軽く「ソース」に当たってからモノを言わないんだろう?そういう疑問を感じることが多いような気がします。

これは私の印象だけなので、どれだけの人が同じ感覚を持つかわからないのですが、これについて「文献」と「ソース」という観点を持ちこむと、きれいに説明できると思います。

つまり、「ソース」という経験の無い人は、無意識に次のどちらかの選択で考えるわけです。

  • 責任ある分野では「文献」(古典)という非常に負荷のかかる所をリサーチする
  • 責任ない分野ではリサーチをしないで、自分の脳内だけの仮説で発言する

そして、「ソース」という経験のある人は、無意識に次のような選択を行なうのです。

  • 責任ある分野では「ソース」を「読みこんで」調査する
  • 責任ない分野では「ソース」を「コンパイル」して調査する

コンパイル」という操作は、プログラムコード以外にはあり得ませんが、無意識にそれを求めてしまうわけです。そして、見識の高い専門家のブログやリンク集等をチェックすることで、「コンパイル」の代用となる経験をしようとするわけです。それが、たまたまネットのリテラシーのつながることで、効率よく幅広い基礎知識を身につけることにつながります。

実際、私には尊敬するプログラマがたくさんいますが、そういう人が専門外のことで「ちょっと待てよ」というような、完全に的外れな発言をするのを見たことがありません。どんなジャンルに関しても、少なくとも自分がそれに発言して大丈夫かの見極めは間違えないのだと思います。そのギャップの少なさが、この仮説で説明できると思います。