寝ても覚めても

ちょっと頼まれてぶっ続けでプログラミングしまくった。
2日連続で徹夜して、あーでもないこーでもないと
デバッグしては走らせ、エラーがいっぱいでてさんざん怒られて、
何がいけないのかちっとも分からなくて、もういやんなって。
投げ出そうと思いかけた頃に、やっとエラーが出なくなった。
とりあえず動くようになったけど、計算に15時間もかかった。
その間に映画を見て、誰かのブログを読んで、論文に目を通して、
ちょっと眠って、それでもPCがまだ走り続けてて、機体が熱くなってて、
こいつはエライな。全力疾走してくれてるんだ、と思った。


いくらなんでも計算に時間がかかりすぎだし、もっとスマートに
やれるはずだと思って改善点についていくつか検討した。
何より問題なのは、ちょっとズルをしてラクしようとして、
ライブラリにあった誰かが作った関数を援用していたところ。
それがどんなことを中でやってるか実はよく分かってないけど、
欲しい結果を返してくれるみたいだから組み込んで使っていた。
そういう安易な方法に頼ったのが失敗の元だった気がする。


誰かが用意してくれたものは上手く使いこなせれば便利だし、
自分で新しく考えなくてもいいし、何より、こういうときは
こうやるものだ、といういわば一般常識とでも言うような、
みんなもそうやってるからそれに乗っかっておけばまず安心。
でも本当にそれが正しい方法かどうか意外に怪しいものだし、
たまたま上手く行くことが多いだけで実のところ間違ってたり、
使用方法や注意点、適用限界とかを知らずに使うのは危険だし、
少なくともそれが唯一の手法ではなくて他の可能性だってある
かもしれない。踏みしめられた一見安全そうな道を外れて
新しい道を切り開く、というと大げさだけど、最初のうちは
一度は自分で道を作るのも大事だということ。


自分が理解できていないことに気付かなかったふりをして、
分かったふりをするのは愚かなことだ。


自分の理解の範囲を大幅に超えたことは、あんまり
すぐに鵜呑みにして信頼するわけにはいかない。


先人の教えに背け、とは言わないけれど、
自分のやり方と違うものを認めず排斥しようとするような、
間違った教えには従いたくないものだ。
自分の考え方こそが正統派だ、と盲信しているような
残念ながら終わってしまっている輩だったらなおさら。


梅原猛さんの言葉が浮かんだ。

「論争の相手は、今おごりたかぶっている権威を選べ。
そして真理以外に味方のないことを確かめて、独りで戦え」


ああ、別のことを思い出して憤ってしまった。
戦うなんて物騒な言い方だけど、売られた論争は買わねばならない。
ともかく、自分が理解できなければ理解しようと努めなければ
ならないし、それでもなお自分が正しいと信じるのならば、
正当な理由があるなら自分を曲げる必要はない。
まったく同じ理由で相手もなかなか折れない可能性は高いが、
そんなことでひるんでいるようでは腰砕けもいいところ。


プログラムは、自分で全部いちから書き直したら
案外あっさり、すいすい走るようになって拍子抜けした。
よく分らないから人の言うことを我慢して聞いておこう
とする必要などなくて、自分に分かるものを自分で作れば
それほど確かなものはない。そのためには積み上げるしかない。
簡単に惑わされない揺らがなさが欲しい。


こんなに根を詰めてのプログラミングは久しぶりだった。
しかも、今まで触ったことのないかなりマイナーな言語で
リファレンスがほとんどなくて、手探りの作業である。
そのせいもあってかなりのイライラの連続だったけど、
求めていた結果が目に見えて達成できると気持ちがいい。
小さくてもいいから何か達成できないと次に進めない。
それは誰かに言われたわけじゃないけど、自分でやったら
できたという類の体験でないと、でも意味がないのだろう。
できた嬉しさでまた次もやるという無限ループに陥れたら
幸せの悲鳴をあげるだろうか。それに近い手応えはある。
ただ、まだ研究に直接活かせていないのが何ともはや。


もっと深く理解できるまでwhileループ、生きてる限り。