人はなぜプログラムを書くのか

だいぶ空白期間が空いてしまった。

仕事に関してあまりいい印象がない僕だが、仕事が始まってしまった。

mk2481.hatenablog.com

さておき、今回はプログラミングに対して何を思っているのかを書く。

はじめに

僕は 4月3日 から開発者として会社で働いている。
主にプログラミングをしていて、主な使用言語は Ruby JavaScript である。
開発全体の意識として、なぜその機能を作るのか、他の方法はないのか?ということを考えているようだ。

今回は、仕事に対してどういったスタンスで向き合うのかなどを整理するためにこの記事を投稿する。

プログラムで何を成すのか

僕が最終目標にしているのは「働かなくてもいい世界」を作ることだ。
キラ・ヤマトのような思考*1だが、なぜプログラムを書くのかをよく考えてみてほしい。
プログラムによって作られたものは大きく分けて2つ存在していると思う。

楽をする

一つは「楽をするため」のものだ。例えば、すでに「地図」というものがありながら、なぜあなたは「Google Map」を使うのだろうか。それは地図を使うより Google Map の方が多機能で便利だからだ。

Google Map では道案内や乗換案内などの機能が使う事ができる。従来なら道案内や乗換案内は人に聞いたり、事前に下見などをしなければならないが、Google Map を利用すればそんなことをしなくてもスムーズに目的地へ行くことができる。

他にもGoogle Map では、検索ボックスに施設などの名前を入れるだけで、その施設の場所を教えてくれたりしてくれる。一方、地図では虱潰しに探したり、人に聞く必要がある。

このように、プログラムによって作られたものは「多機能」で「便利」なもの、すなわち「楽をする」事ができる。

人を楽しませる

もう一つは「人を楽しませるため」のものだ。代表的なものは「ゲーム」だろうか。ここで、ゲームとはテレビゲームやスマートフォンアプリなどのことを指すこととする。

ゲームは基本的にプログラムによって動いているのだが、それによって誰かが楽をすることは基本的にはないと思われる。*2

なぜ人はゲームをするのか。多くの人は暇つぶしにしていると思うが、暇つぶしするのにはゲーム以外にも選択肢はある。その中でもゲームを選ぶ理由はやはり楽しいからにほかならない。

このように、プログラムによって作られたものは人を「楽しませる」事ができる。

僕とプログラム

今僕が所属している会社で扱っている製品は前者に該当する。僕もどちらかと言えば前者に該当するプログラムを書く事が多い。ここでなぜ僕は前者のプログラムを書くのか、書いてどうしたいのかを考えてみる。

僕は基本的には面倒くさがり屋である。例えばデータベースに255文字まで入るものがあったとして、256文字以上を入力して本当に入らないのかを検証する時がある。その場合は

256.times do 
  print "a"
end

このようなプログラムを書いて出力された文字をコピペして検証する事がある。なぜわざわざプログラムを書くのかといえば、256文字も打つのが面倒だし、数えるのも面倒だからだ。

なので、面倒だからプログラムを書く、という流れは極自然なものだし、怠慢はプログラマーの三大美徳に数えられるらしい。*3

企業として、なぜ前者のような製品を売っているのか、考えてみる。製品を販売して利益を上げているのならば、誰かがそれめんどくさいと思っていることにほかならない。

仕事する上で、面倒なことはある程度あると思う。会議の書類を作ったり、メールを確認したり。もしそれらのことがプログラムによって自動化できるとしたら? AI によって適切な判断が行われ、自分の代わりにやってくれるとしたら?世の中にはそのようなニーズが溢れている。

「労働」のない世界へ

さて、先程「楽をするための製品」を売ってる企業と「楽をしたい」ニーズがあると述べた。もうお気づきだろうか。結局、みんな働きたくないのだということに。そして、「楽をするための製品」がこの世の中に十分に普及し、「楽をしたい」というニーズがなくなったその瞬間、この世の中から労働は消える。

近頃、ディープラーニングやロボットによって労働者が必要なくなると言われており、「ロボットに負けないように働く」といったことをよく聞くようになった。

確かに、労働者は必要なくなるだろう。経営者としては、人件費を削って利益としたいわけだし、人をリクルートするのにもお金はかかる。もしロボットで済むならロボットの方が良いと思うのは当たり前だろう。

しかし、ロボットに負けないように、というのは間違っていると感じる。個人的には自動化が進んでいることを素直に喜ぶべきだと思うし、政府や国があくまでもこれを推進するというのなら働かなくても最低限の生活ができるようにフォローをするべきだと思う。

最近、過労死やブラック企業など、労働に関するあまり良くないニュースが多い。企業や製品が飽和状態にある今、自動化によって労働者が消えることは悪い話ではないと思う。

まとめ

僕は、楽をするためにプログラムを勉強し、それを使っている。
企業も、楽をするための製品を売っているし、それを買っている企業もある。
全てを自動化すると労働者は必要無くなるので、それに適応できるように制度を設ける必要がある。

おわりに

この記事は極端な意見で構成されており、極めて非現実的であることを述べている。もしあなたがこれを見て、これは極めて幼稚であり、全く根拠のない妄言であると感じたのなら、あなたにとって僕はそういうふうな印象を持つだろう。しかし、この記事は僕の素直な考えそのものであるということは明言しておく。

*1:争いをなくすため争う

*2:親が子供にゲームを与えることによって、子守を楽にしている可能性はある。

*3:そういう意味じゃないかもしれない