khurata’s blog

khurata’s blog

プログラミング精神とは

(もともと「Yahoo!ブログ」だったものを転載しています)
(投稿日時:2019/1/16(水) 午後 4:58)

 

 これは、今から100年以上も前に当時のドイツで製作されたフープフェルト・フォノリスト・ヴィオリーナ(Hupfeld Phonoliszt-Violina)という自動演奏機械を、オランダの職人が復元したものだそうである。
https://www.youtube.com/watch?v=qewdC3hX4iQ
https://www.youtube.com/watch?v=YBzaSVbCWxM

 19世紀から20世紀前半に至るまで、欧米ではこのような機械が多く作られ、当時の人だけでなく現代人でさえも感心させる。

 このような機械を見るにつけ、元プログラマの端くれだった自分は、これらの機械が目指したところについて思いを馳せずにはいられない。

 現代、多く使われるコンピュータは、何らかの物理的形態として蓄積されたプログラムを順次実行していく機械であるのだが、上記のような演奏機械も、その点では全く同じである。
 極論すれば、そこには、プログラムの実行結果が数値であるか演奏であるかの違いしか無い。 あまつさえ、現代のコンピュータに楽曲の再生をさせれば、その動作の本質はほとんど変わらない事になる。

 このような機械は、近代西洋人が作り上げてきたものなのだが、彼らが培ってきた近代西洋音楽というもの、そしてその演奏という行為、それらの根底に流れる思想というか想念のようなものは、とても「コンピュータ的」である、と私には感ぜられる。

 かつて藤山一郎は、古賀政男が作曲家と呼ばれている事に対して、「古賀先生は作曲家ではなくメロディーメーカーです」と言ったそうである。 近代西洋音楽の正統教育を受けた藤山一郎にしてみれば、作曲(コンポーズ)というのはオーケストラで演奏する楽曲を作る事を指すのであって、旋律を生み出すだけのことは「作曲では無かった」。

(新たに個性有る旋律を生み出すのは、それはそれで偉大な行為であるという事は藤山一郎も分かっていたはずで、上記のセリフには古賀政男を貶める意図はおそらく無く、単に藤山一郎自身の定義と見解をフラットに述べただけだろうと私は受け取っている)

 さて……これは私の単なる直感だが、プログラミングの精髄というものがもし有るのなら、それは「作曲(コンポーズ)」の定義や精神性といったものに重なったものではなかろうか。
 そしてそれは近代西洋人の近代西洋的な思想や理想の体現といったものに、かなり近いものであるように私には思われる。

 アラン・チューリングは、彼の考えた思考実験上の計算機を、「計算し得る数とは何かを定義するモノ」とし、それを Universal Machine と名付けた。 それはとりもなおさず、それまで作られたあらゆる自動演奏機械を極限まで抽象化したものである。 プログラマ風に言えば、それは「あらゆる自動演奏機械の基底クラス」であり、あらゆる自動演奏機械はその派生クラスとして作り得る、という事だ。 このたとえは、チューリングの Universal Machine と現代の多くのコンピュータの間にも通用する。

 近代西洋の理性と数学に基づき、全てが理解可能な要素のみから成り、あらゆる曲の完全な演奏を制御し現出させる「万能機械(Universal Machine)」。

 それはつまり、平べったい言い方になるが、「東洋的では無いもの」、「中世的・古代的では無いもの」、「直感的・動物的では無いもの」である。
 20世紀と21世紀の前半は、そうした思想と産生物が人類に進歩と富をもたらしてきたし、今後もそうであるだろうと多くの人が漠然と考えているだろう。

 その流れにきちんと乗り、「道を外れない」ためには、クラシックに代表される近代西洋音楽を知る事が欠かせないのかも知れない。
(近代西洋の教養としてクラシック音楽が欠かせない理由は、近代西洋の精神を音楽が代表しているからではないかと私は推測する)

 今、各国で、子供に対するプログラミング教育の重要性が言われているが、その対象年齢に達する前の教育として、あるいはプログラミング教育と並行する教育として、近代西洋音楽について教育する事の是非や必要性について述べているという話は、寡聞にして知らない。 しかしこれは意外と大切なことなのではなかろうか。

 エリック・レイモンドが、「ハッカー精神を身に付けるためには『音楽を分析的に聞く耳を鍛えること、一風変わった音楽がわかるようになること、なにか楽器を上手に演奏したり、歌が歌えるようになること』が大切」だと述べているのは、「自然なこと」なのだと私には思われる。