今日の料理
100円の餃子は著しくコストパフォーマンスが高い。
Re: 一つの言語に集中できない
を読んだ感想です。
多分、多言語を食いちらかしているような人間からすると、同じような悩みを持っていると思う。自分も、最近はRubyとRacketに落ちつきつつあるけれども、OCamlに興味が出てきたらOCamlに突っこんでいくし、Smalltalkに興味が出てきたら、Smalltalkに突っこんでいくということを繰り返していたりする。
自分の強迫観念というか、それこそ自責することの一つに、「こんなお金にできない言語をやっている暇があるんだったら、SQLの一つくらい覚えたほうがよほど金になる」というのがある。そういう現実主義的な自分がいてクラクラしそうになる。
簡単に言ってしまえば「気質の問題」というか「飽きっぽさ」という単純な解答はあるんだけど、でもこの解答はあまりにもポジティヴではないだろう。もうすこしポジティヴに考えるとすると、下のような解答になると思う。
二つの理解
プログラム言語には、二つの理解方法があると思っている。一つには、そのプログラム言語の挙動を掘りさげていくことによって、一つのプログラムについての洞察を理解しようとすること。もう一つは様々なプログラミング言語を照しあわせて、その差分から理解しようとすること。
実際、この両者について、理解の深化についてはあまりかわらないと思う。実際のプログラミング言語の挙動については、前者のほうが詳しくなる可能性が高いだろう。後者の場合はどちらかというと「プログラミングとは何ぞや」という抽象的な問いになる可能性はあるとは思う(だからこそ、ラムダ計算なんかに興味を持ちはじめたりする)。
で、この理解の方法を「内側から理解するか」、あるいは「外側から理解するか」という風に呼ぶ。外側というのは、つまりプログラミング言語の差異によって理解するということだ。
「差異」というのはバカにはならなくて、『精神と自然』を書いたベイトソンなんかは、情報とは結局のところ「差異」なのではないか、みたいなことを述べている。とすると、この手の差異を作るためには、違う言語をやるのがてっとり早い。英語の慣用句が、日本人の慣用句と違うことに驚いて、よりなんらかの現象への見方を転換させるように、違う言語をやるということは、言語の見方を転換させることになるだろう。
体系化
で、いろんな言語をやっていると、いつしか「あれ、この考え方はこの言語にも転用できるのではないか」ということがわかってくる。そうするとしめたもので、よりプログラミングに対する知識というものが生まれてくる。そのとき、違うもの同士だったプログラミング言語が、いつのまにか手を取りあっていたりする。その瞬間に引かれるのではないんじゃないんだろうか。
だから、自分なんかが、色んな言語を触りたくなるのは、このような「そうだったのか!」という「アハ体験」をしたいが故のことなのかもしれないな、と思ったりした。
まとめ
なんていうか、酔っぱらいの戯言みたいなエントリだけれど、自分の立場としてはこんな感じ。たぶん、「違うことはどこかで同じことになる」みたいな態度で接していくといいのかなあ、なんて普段は思っていたりする
参考文献
- 作者: グレゴリーベイトソン,Gregory Bateson,佐藤良明
- 出版社/メーカー: 新思索社
- 発売日: 2006/11
- メディア: 単行本
- 購入: 8人 クリック: 44回
- この商品を含むブログ (54件) を見る
- 作者: G.W.F.ヘーゲル,樫山欽四郎
- 出版社/メーカー: 平凡社
- 発売日: 1997/06
- メディア: 新書
- 購入: 5人 クリック: 34回
- この商品を含むブログ (46件) を見る