プログラムは書いた通りに動く?


宮坂 聡

筆者は、2022年に、新卒から勤めた出版社を退職して、モノグサ社のソフトウェアエンジニアになりました。

初めは分からないことだらけでしたが、今はそれなりに仕事ができるようになりました。まあ気のせいなのかもしれませんが、少なくとも自分ではそう思っています。

もうすぐ年末なので、自分の整理をかねて、前職でやっていた編集職と、今やっているエンジニアの仕事の比較をしてみます。

プログラマのことわざ

有名なプログラマのことわざがあります。

「プログラムは書いた通りに動く。」

有名ではありますが、意味について念のために補足しておきましょう。

初めて見たときには間違いやすいのですが、このことわざの意味は「プログラムが自由自在に動く、思った通りに動く」という意味ではありません。

むしろ逆であり、どちらかといえば「プログラムは思った通りには動かない」ということを言っています。

プログラムは、良くも悪くも「書いた通りに」動きます。人間がどんなつもりで書いたかなんて、コンピュータには伝わりません。もし間違ったコマンドを書いていたときは、コンピュータにはその通りに伝わるでしょう。そして、コンピュータはその通りに間違った挙動をします。

まあ、それはそうです。そういうものでしょう。

このことわざは、そういった事実を指摘しています。

ところで…。

「書いた通りにしか伝わらない」というのは、コンピュータに限った話なのでしょうか?

語られていない前提

プログラムは思った通りではなく、書いた通りに動く。

このことわざを紹介するとき、言外に、これがコンピュータの特性だというニュアンスを持っているように思います。

この点について少し掘り下げてみましょう。

特性というからには、比較対象として「普通は○○なのに〜〜」という前提があるはずです。

このことわざでは、「プログラムは書いた通りに動く」と言っています。これは、何を比較対象として言っているのでしょうか…?

おそらく、それは「人間が相手なら、書いた通りではなく思った通りに動いてくれるのに」という前提でしょう。

しかし、この前提は正しくないように思います。

書いたことしか伝わらない

人間にも、書いたことしか伝わりません。

編集職になったばかりの頃、自分で原稿を書いて、先輩に見せると、「これは事実と異なるのでは?」といった指摘をもらうことがありました。

もちろん、原稿に指摘をもらうこと自体は、何年やっていてもあります。ただ違うのは、その時は「そんな意図で書いたんじゃなかった」という弁解をしようとしたことです。

「そんなつもりじゃなかったんです。」

まあ、弁解すれば、先輩はわかってくれるでしょう。

「なるほど、事実誤認ではなかったんだね」と言ってくれるかもしれません。

しかし、続けて先輩は「じゃあ、そういうふうに書きなよ」と言うでしょう。

そして、もしかすると説教が始まるかもしれません。

もちろん、もし読者にも同じ弁解を聞かせることができるのであれば、読者も同じように、意図をくんでくれるでしょう。

しかし実際には、読者は紙に書かれた文字しか見ません。そして、先輩が最初に見たときのように、事実と異なることを読み取ってしまうのでしょう。

どういうつもりで書いたか、ではなく。

人間にも、書いたことしか伝わらないからです。

人類普遍の原理

ところで…。

「書いた通りにしか動かない」ということわざを聞いたとき、ああ自分の仕事のことだなあ、と共感するのは、編集者とプログラマだけなのでしょうか…?

いや、きっとそうではないでしょう。

出版編集に限らず、コンテンツ制作やクリエイティブの仕事をする人であれば、多かれ少なかれ、「どうすれば、思った通りの伝わり方をするように書けるか」に心を痛めているはずです。

また、エンジニアの仕事といっても、それはプログラミングだけではありません。私のようなソフトウェアエンジニアに限っても、プログラム以外にいろいろなものを作ります。数え上げれば、仕様書、手順書、あるいは工程管理表、テスト仕様書など…。いずれも「書いた通りにしか動かない」ものばかりです。

それから…。

私は、編集やエンジニア以外の職種について詳しくはないのですが、料理だって作った通りの味しかしないし、車の運転だって操作した通りにしか動かないのは知っています。

あるいは、取引先にメールを書くとき、提案のプレゼンの練習をするとき、「この一言がどんな受け取られ方をするか」を気にしない人はいないでしょう。

そういえば。

プログラミング的思考と言って、日常の生活や学習の中からプログラミングの要素を見出すことが流行って久しいです。

「書いた通りにしか動かない」というプログラマのことわざは、実は、人生のことわざだったのかもしれません。