なかなか普段続けていると思っていることでも、実はしっかりと取り組むことはできていなくて、本質から遠ざかっていたりすることが有ります。僕はそうです。普段プログラムを仕事で書いていても、実は良いプログラムを書くと言いながら、仕事に適したプログラムを書いてしまったりします。もちろんそれが効果的に働いて仕事は回っていくのですが、本当に美しいプログラムを書くというのは現実世界からは少し遠いものだったりするのだと思います。
さっきあげた「旅立ちの日に」もそうかもしれません。シンプルで、わかりやすくて、誰にでも聴きやすい、しかも聴いてもらいやすい曲です。伝わりやすい曲を伝わるように丁寧に弾く。これも適した弾き方なのかもしれません。僕自身「旅立ちの日に」は卒業式でも歌ったことが有ります。いまでも好きな曲ですし、イントロを聴くだけで卒業を想起します。また、聴いてくださっていたり、数少ないこの文章を呼んでくださっていたりする方々に観ていただいたり聴いていただいたりするために、こういう曲を弾くことの意義があると思います。仕事におけるプログラムを書くということは、僕にとってはこれに近いもののように思います。結果が出て、プログラマじゃない方にもわかりやすく伝わるものです。むしろわかりやすく結果を出すことが大事です。コンスタントに、役に立つものをつくること。こうして価値を生み出すことが出来ます。
では美しいプログラムとはなんなのかというと、僕の中でも答えがありません。ただひとつ、僕自信もプログラマの端くれとして常に、理想的なプログラムを書きたいと思っています。自己満足を求めているのかもしれません。現実にある問題を少しきれいな世界に持って行って、そこで少しでも納得の行くコードに落としこむこと。これは僕の楽しみの一つでも有ります。
そうしたコードに近づくためには、2つのアプローチが有ります。1つは、現実から少しきれいな世界に持っていく方法を知ること。もう1つは、きれいな世界を知り、現実に落としこんでいくことです。2つは似ているようで、順序が異なります。前者は実学的で、後者は学術的なアプローチであるというとしっくり来る方もいらっしゃるかもしれません。僕としては両方のアプローチがかけると前進が遅くなってしまうことを感じています。少なくとも、長期的にはそうです。短期的に目の前の仕事が忙しく感じられても、また後者を補う時間をとること。そうすると次に直面した問題にまた新しい角度から取り組むことができるようになります。
今まさに感覚として、後者が弱い時期にあるので、3月も終わりで次の期というのを肌にうすうすと感じるのも相まって、基礎の見直しをしています。こうして意識的とも無意識的とも言えるような繰り返しをしながら、プログラムを書き続けています。