2012/01/08
道具によって育てられる
プロが道具にこだわることと、「弘法は筆を選ばず」とは矛盾しない。プロなら必要に迫られればどんな道具も使いこなせるだろうが、そういう道具を常用することは話が別だからだ。
プロの奏者によるこの一連のtweetが面白かった。
一応書いておくと、楽器ってのは、使っていくうちに奏者の体も変化していくものなのです。それを「楽器に慣れた」「この楽器の鳴らすコツをつかんだ」という感覚で表現したりしますが、感覚以上に奏者の肉体も物理的に変化しているのですね。
例えば、今自分が使っている18Kの大変グレートな楽器。これを廉価版の普及モデルの他社製品にパッと持ち換えても、かなりな程度「現在の楽器と同じ音」がします。ですが、それをもって廉価版で十分、あるいは「楽器じゃない、腕だ」という単純な結論に達するかというとそれは違っていて(続く)
廉価版の楽器で半年、一年と本番を繰り返すうち、いつのまにか少しづつ「廉価版の楽器の音」になっていきます。そして、数年後、今度はパッと18Kのグレート楽器を吹いても、「廉価版の音」がしてしまうのですね。これは、奏者の感覚以上に微妙な筋肉や神経のバランスなどが変化しているせいなのです
つまり、本当に良い楽器、あるいは相性のいい楽器というのは、文字通り奏者を「育てる」力があるのです。いっときの試演奏で楽器の真価が判断できない理由のひとつがまずこれです。
これは楽器だけの話じゃなく、「なにかをつくる」分野なら何であれ、道具との関係として一般化できそうだ。
相応のスキルのあるプログラマなら、どんな言語でもそれなりに書けるし、 どんな言語でも要請があれば使うだろう。けれど、それは 「言語なんてどうでもいい、関係ない」ということではないわけだ。
言語の場合、「微妙な筋肉や神経のバランス」には影響を与えないだろうけれど (記号の多い言語を使っていたらShiftキーを押す小指が鍛えられるかもしれないが)、 思考と発想のプロセスには確かに影響を与える。 言語の提供する色々な抽象化の仕組みは、思考のツールだ。 ツールが貧弱な言語ではそれを補うために余分な回り道を強いられたり、 設計が一般化できず不自然で特殊な解へと偏ったりする。
まあ何を使おうがどこかでは妥協の必要が出てくるのだけれど、 一時的に「わかって妥協」しているつもりが、常用することで 知らず知らずのうちに発想が制限されてゆく、ってことは、多分あると思う。
これは、単に言語が高機能であれば良いというだけではない。 「こういうインタフェースにすれば綺麗なんだけれど、 性能が出ないから仕方なく抽象度を下げてちょっと汚いインタフェースで妥協する」などというように、 言語処理系の実装にも密接に関わっている。
私自身、性能とインタフェースの綺麗さがトレードオフになったときに性能側に倒す 癖があると自覚している。でも本来、 「最も綺麗に書いたコードが最も速く走る」というのが理想であって、 Gaucheもできるだけそっちの方向に持ってゆこうとあれこれ考えている。 (0.9.3に入るgeneratorとlazy sequenceは、性能を損なわずに抽象度を上げられる 結構良い仕組みではないかと思ってるんだが果たしてどうだろか。)
関連するようなしないようなエントリ:
Tag: Programming
(び) (2012/01/09 04:07:50):
shiro (2012/01/09 06:07:41):