音楽とプログラミング

音楽とプログラミングは似ている。

昔バンドをやっていて曲もつくったことがあるけれど、曲をつくるのとプログラムを書くのは似ていると思ったことが過去にもある。プログラミングにフレームワークがあるように、曲にだってよく使われるコード進行であったり、リズムも8ビートや16ビートなどがある。

音楽とプログラミングが似ているとすると、プログラミング言語にあたるのは楽器なんじゃないかと過程してみたりもする。自分は新しいものを学ぶのが好きなので、AIR、Silverlight、Rails、WPFなどいろいろ手をつけている。こういった新しいテクノロジーを比較するのは、特徴を比べる面では良いけれど優劣をつけるのはナンセンスだと思う。

楽器に置き換えるとピアノとギターの優劣をつけるようなことになるのかもしれない。でも、そんなの決めたってしょうがない気がする。考えてみるとバラードだったらピアノがいいし、ロックだったらエレキギターが良い。という話になる。これを逆にプログラミング言語やテクノロジーに置き換えてみると、何をつくるかによって適切な言語や技術を選択すれば良いのではないかと思う。

さらに先を考える。人を感動させる曲をつくるのも、人を感動させるサービスをつくるのも同じことだと思う。曲はアレンジも歌詞もあるけどやっぱり曲自体が良くないと意味がない。別にバラードだろうが、ロックだろうが良い曲であればそれで良いと思う。そう考えると楽器を選ぶとかいう話自体がもうどうでもよくなってくる。

作曲という面でみると、実際に曲をつくるときにはギターを持つこともあるし、ピアノを弾くこともあれば、楽器は何も持たずにふとメロディーが浮かぶこともある。個人的な経験上では良い曲は楽器を持たないときにできることのほうが多い。

良いサービスっていうのも言語や技術を意識しないところで生まれるのかもしれない。そんなわけで、いろんな技術を調べていながら技術志向にはまったくならず逆に技術なんてどうでもよいという考えにたどり着く自分がいる。

ただ、この空想に浸っていられるのはものをつくるまでで、実際につくったあとの演奏するときには性能という面でプログラミングに非常に技術的に依存するようになるんだよなぁ・・・