(9)吾輩も自分のコードにとやかく言われるのは嫌

 吾輩はシステムエンジニアーである。いやしかし、前回(先々月)の話はすこぶる面白くなかった。

 いや、前回の話で言いたかったことは、プログラミングにはパラダイムがあるということである。
 パラダイムというのは「ある時期の背景と方法を包括したもの」を示す「時代」や「流行」とは別の便利な言葉である。IT系のひとたちにとっては、ホスト、オープン、Web(次はフロントベースのサーバーレスと続くだろう)のことであるのだが、たとえば、近代の情報収集のやり方は、一般化したインターネットのうえで、はじめはパソコンだけだったが、iモードが生まれ、スマートフォンになっていったように、根幹を為す技術は変わっていないが、情報への触れ方は変わっていった、という説明であれば、IT系でないひとでもわかると思うのだけど、このそれぞれがパラダイムである。
 そして、前回の里見さんのプログラムは、少なくともM言語を使う場合においては、直近のパラダイムにふさわしくないものだったということが言いたかったと、高層ビルに入る常駐先の社食は避けて、いつも来ている地上の居酒屋で、ランチのアジフライ定食を頬張りながら考えていた。

 ビルに戻り、喫煙所で2本吸ってからデスクに戻る。休憩が終わるまであと15分ほどあるが、昼からと言っていた里見さんがもう来ていた。ノートパソコンに向かい、休憩ではない時間を過ごしているようだ。半休が気まずい現場もあるから、少し早く来るのは懸命な判断だと感心しながら、レインボーさんの島はまだ誰も昼食からは戻ってきておらず、ランサースタイルの島も、吾輩と彼女だけであると気づく。彼女が休憩中でないのなら、前回わかった「面白い話」がなぜそうなのか、聞くなら今しかない。彼女のコードは確かに「だいぶアレ」ではあったのだが、尖ったものというか、ある種の執着のようなものを感じたのだ。

「あっ、里見さん、お疲れさまです。あれ?、もうご飯は食べたんですか?」
「はい。来る途中に簡単にすませてきました。」今朝は彼女が来るか来ないかで揉めていたこともあったので、心配させまいと気丈に振舞っていたのが、その話し方からわかった。あまり話を長引かせたくなかったので、間髪入れず、吾輩が続ける。

「あの、3Aの4のソース見て、気になったんですけど、変数の局所宣言がないのとループが全部後判断になっているのが、面白いなあと思って見てたんですけど。」
 こういった話をされるのが初めてだったのか、最初は驚いたような顔を見せていたものの、徐々に彼女の表情が曇っていく。
「・・・なんでしょう?私のソースに対して、何か仰りたいことでもあるんですか?」
「いえ、言いたいことは特にないです。規約違反でもないし、汚いわけでもない。むしろ、清々しいくらいです。」
「じゃあ、何ですか?」
「たとえば、このメソッドの先頭の変数宣言、先頭に20行もあると見る人が面食らうのと、半分以上は、判断とループのブロックの中で使われるものだから、それらはブロックの中で宣言したほうが処理全体の見通しも立てやすいし、変数の適用範囲はブロック内だけだから意図しない代入とかもなくなる。あと、これとこれとこのループを抜ける条件式は後でなくて前に書けば、不要な変数も出てくるし、ソースファイルもだいぶ減らせる。」
「でも動作は変わりませんよね?修正しろと言ってます?」
「いや、そういうことは言ってない。でもM言語が属しているパラダイムいえば、こういう書き方が普通じゃないかなと思って。あと、それから・・・。」
「それから?」彼女に促され、吾輩が続ける。
「なんか、こうも書き方が統一されていると、いちばん最初に覚えたやり方をずっとたいせつに守っているような気がするんですよね。もしくは、これが正解だという方法を守っている、というか。もしかしたら、これまで、あるべきロジックの議論をしてきてないのかな、とすら思いました。」
「・・・そうですか。仰りたいことは以上ですか?」

 吾輩の、以上です、という言葉を聞いて、彼女は女性にありがちな、頬をふくらませて、ぷいっと顔を背ける仕草をしてみせた。・・・図星か。我々の仕事は納期通りに品質の高いプログラムを書くことであるから、意外とその中の書き方がどうあるべきかということは議論されにくい。彼女は、そういった機会が与えられることなく、自分の正解を貫いてきたんだろう。だから、他人の書いたコードは触りたくないという結論に至ったんじゃないかと思う。そして、自分のコードにとやかく言われるのが嫌なのは吾輩も同感だ。でも、最新の事情については、つねに取り入れていかなければと、自問自答しながら、昼休みの終わりを告げるチャイムを聞いた。