『数学者たちの楽園 「ザ・シンプソンズ」を作った天才たち』を読んで
「数学者は扱う対象をコントロールしたいという願望を少なからず持っているのに対して科学者は現実世界を相手に奮闘することを楽しんでいる。」
という一説があったがプログラミングはどっちよりだろうか?例えば理論的にはこうなるはずというものに対して違う反応をした場合、それに対して解決していく。
これはバグを探す作業に似ている。なんでこうなるんだ、と考えながら試し続ける。こう考えるとプログラミングは科学よりのように思える。
では逆に考えるならプログラミングは完璧が求められるものである。理論的にはこうなるはずと思っていたものに対しても深く深く探っていくと原因がわかる。
これは理論の詰めが悪かっただけで実際の理論通りに動いていることを示すことになる。
こう考えると数学のように扱う対象を完璧にコントロールしたいという願望のようにも思える。
ではどっちよりなのだろうか?個人的には数学よりな気がする。扱う対象をコントロールしたいと思う方だと思う。
数学者のように現実世界とある意味隔離した、抽象化した世界は少なからずプログラミングにもある。
実際1と0だけの世界を抽象化して積み上げたものがプログラミング言語だと思うし、当然それを扱って解決するものは総じて抽象化した世界だと思う。
コードにどうゆう意味を含ませるか、どんなものを作るかまで全てをコントロールできる。
プログラミングは数学、それも純粋数学と似ている。
【まとめ】
実際プログラマーは『いかにして問題を解くか』や『この本の名は』など数学やパズルの本を昔から親しんでいる。科学にも通ずるものがあることは確かだが、数学よりだと思う。