ミームとコード


久々に自分の部署に対して業務改善を仕掛けようとたくらんでいる。
アプローチは2通りで、1つは人の心に勢いをつけるというところがターゲットで、
もう1つは純粋なシステム開発期間短縮のための改善。


2つ目のシステム開発期間短縮のアイディアはこんな感じだ。


CSVリポジトリに対して、最近追加されたソースコードを検索するという、とても簡単な仕組み。


「いつ」、「だれが」、「どのプロジェクトに」アップロードしたソースであるかと、
どれかの属性で検索をかける。


目的は、皆がお手本となるソースを以下に確実に、簡単に見つけられるか。


パッケージのカスタマイズ開発の場合、
ソースのデザインには個性はいらない(と僕は思っている)。
各人が多少の進化を織り交ぜるのはいいのだが、
次の人が見たときにぱっと全体が理解できるためにも、
皆が似たようなソースを書いているのがいいと思うのだ。


たいてい誰かにプログラミングを聞くと、
最終的にはお手本となるソースを見せてくれるか、教えてもらえるものだ。
多少の解読力がつけば、それを見る方が話を聞くよりも理解は早いと思うのだ。



と言うようなことを考えていて、ふと久々にミームのことを思った。


プログラム1つも、ミームとみると面白い。
(厳密にそれが当てはまるかどうかは別として、今なんとなく思ったことを表現するに
ミーム」という言葉が最も適切なのだ。)


プログラムって
一人の人間の考え方が、1つの言語として非常に簡潔に表現されている読み物である
というように、ようやく最近になって、なんとなくそれが判ってきたような気がする。ぼんやりとではあるが。


なので、上述したような「お手本」を元にそれによく似たプログラミングをする
(外部環境に合わせた分だけが差分ということになる)ということは、
ミームの伝達、というようにも見られる。
僕はJavaを書いているので、
オブジェクトという実体がいくつも集まってシステムをつくっている様は、
様々な種の細胞が集まって、生命体ができているような錯覚を覚えることがある。


そうすると多数の人間の思考結果が寄せ集まってできているシステムというものも、
その思考の「似ている偏り」というか、強いミーム、弱いミームとかが存在していて、
なんらかの分布をもって、いくつかのミーム塊が存在している、複合体なのだと見えてくる。


いいソースを真似る。
これも自己組織化を促進する見えない力だなぁ、と思う。