なぜコードを書き直したくなるのか(メカAG)

写真拡大

今回はメカAGさんのブログからご寄稿いただきました。
■なぜコードを書き直したくなるのか(メカAG)
「王様達のヴァイキング」現在新章が徐々に盛り上がりつつある。以前は是枝の引き立て役だった無能を絵に描いたような警視庁サイバー課。一応若手やり手もいるらしく、そいつと神崎刑事の絡みが面白い。

国内のSNSをビッグデータ解析して、犯行に使われた場所や手段に関係ありそうな発言をしている人物をあぶり出す。サイバー課もやるじゃん(フィクションの中ではw)。コードのハッキングがメインの是枝とは上手く住み分け&協力できるかもね。ツンデレらしくいまは敵対心むき出しだけど。

犯人の候補が、今度は誘拐事件に関する映画をいろいろみていたころから、次の事件は誘拐事件かもしれないと推理する。「SNSは隠れた自意識を露呈させる。時に尋問よりも役に立つ」。なかなか語るね。

いままでコンピュータを題材にしたフィクションって、消化不良が多かったんだよね。なんというか書き手が現実(のコンピュータの世界)についていくのが精一杯で、現実の先を行くというのはとても無理みたいな。いよいよ現実を消化したフィクションが現れ始めたってことですかね。そういえばこの前の「デモクラティア」も匿名のはずの発言が、発言内のキーワードの類似性から身元がバレて、本名を晒されるという展開だったし

   *   *   *

話は変わって、コンビニATM事件で、見るに耐えないATMのソースコードを前に、思わず是枝がいきなり修正しだす(当然つまみ出される)。

ホントなんで修正したくなるのかね〜。別にそれで金をもらえるわけでもないのに。俺なんかしょうがないからソースをコピーして手元のソースをせっせと修正してた。永久にチェックインされないソース。

ソースを解析しなければならない時、自分好みにインデントとか直しながら読むと非常に効率が上がる。あとエラー処理とかとりあえずメインの処理と関係ない部分を削除して、全体の流れを置いやすくしたり。

   *   *   *

つまり理解するための修正。プログラムの構造というのは、ソースコード上では文字列だけど、プログラマの頭の中では、ヴィジュアルな図になってると思うんだよね。概念が楕円とか長方形で表されていて、線とか矢印があちこちに引き回されている。

頭の中だから自由自在にズームできるし、どんな角度からも見れる。紙に書くと2次元でしか見れないけど、頭の中なら3次元、4次元、5次元もっと10次元とかも可能。

プログラマはコードを読みながら自分の頭の中にそういう図を構築していくわけだけど、この作業がなんというか…人それぞれ独特なスタイルがあるように思う。空中を指さしながら、あれはこうで、ここはこうだから、と呟きながらとか、貧乏揺すりしながらとか。もちろん実際に紙に図を書いたりしながらというのもある。

   *   *   *

図を書いたりコードを整理したりするのって、その方が理解しやすいからかと思ってたのだけど、もしかしたら何かしら手(というか体)を動かすことに意味があるのかもしれない。つまり何か物理的なことをやってることが大事で、コードの修正のためにキーボードを叩いてたり、ノートに図を書いているのは、実はあまり関係ない。

それを支持する要素として、図を書いてるとだんだん簡略されてくんだよね。最初の頃はモジュールの名前とかを書き留めてたけど、ただの丸になってしまい、最終的には真っ白なノートに向かって「ここにこれがあるから…」とか。実際にはかかれてなくても自分の頭の中ではそこに図がある(笑)。

人間は抽象的な思考をする時に、物理的な物を動かす処理を転用しているというのが俺の持論。「これをあれと入れ替えて」とか、「この問題は棚上げして」というのは、比喩ではなくて能の中で物理的な物の移動と同じルーチンを使っている。