作曲とプログラミングは似ている?

音楽とプログラミングの類似点がIT Proのコラムに取り上げられています。
私もコンピューターを使って音楽をプログラミングする(曲を製作すること)が、
非常にプログラミングに似ていると感じています。

読むと私の名前も出てきますが、私がさらに指摘した点は下記の通りです。

  • プログラマーには音楽家が多い
    • 未踏プロジェクトOBの集いなどで、優秀なプログラマーたちと飲み会などを行うと、かなりの確立で、プログラマーの皮を被ったミュージシャンに出会います。
    • 音楽とプログラミング(あるいは、音楽と数学!)の性質はとても近いのではないかと考えています。
  • 音楽には数学的要素が多い

そのほかにも「プログラミング:音楽」を対比させると...

  • 制御構造 : フレーズのリフレイン
    • プログラミングにも音楽にも制御構造がある。
    • 楽譜を見ると、繰り返しやジャンプなどがたくさん!
    • 音楽は、フレーズを単位として繰り返しを基本にしている。
  • オブジェクト指向 : 音楽のコード理論
    • ルートとなる音(スーパークラス)に、3度、5度、11度と構成音を重ねていくのが、メソッドやメンバ変数を追加していく感覚に似ている
    • また、曲の伴奏などで、8ビート、16ビートなどリズムをつけるが、リズムはだいたい決まっていて、どれを選ぶかは感性によるが、よく使うテンプレートエンジンやライブラリから、どのクラスを使うのか選ぶのに似ている。
  • プログラミングで、いつかこんなプログラムを書いたような... : 音楽でも、こんなフレーズいつか聞いたことがあるような...
  • お客のニーズを聞き、それに答えたプログラムを作る(受託開発) : 聴衆の要望を聞いて、雰囲気にあった曲を演奏する(バーなどで演奏)
  • プログラミングでユニットテストをする : MTRなどの録音では、曲の一部をミュートとして再生できる。一部を取り出して演奏が間違ってないか確認できる。
  • ツボさえ抑えておけば多少手抜きしても聴くに耐える曲ができる : 多少手抜きしても一応目的を果たすことができるプログラムが完成する