プログラマーのコードは読み手のことを考えている

プログラマー不要論はあるけれど……。

プログラマーは絶対に必要です!

読み手を意識したコード

読み手を意識したコード

コンピューターが自動生成で作ったコード

コンピューターがコードを自動生成することができるので、この先プログラマーが不要になるかもしれないと言われていますが、実際にプログラミングに携わる側から見ればにわかには考え難い話です。コンピューターは、人間のように考えてプログラミングをするわけではないので仕事も早いし正確ですが、それを人間が扱うとなるととてもやりにくいのも事実です。自動生成されたプログラムは、当然ながらどこか機械的で読みにくく違和感があるものです。そもそもコンピューターが自動的に行うものなので人が読む必要もないのですが、もし自動生成が元になっているプログラムを人がメンテナンスしなければならなくなると、結局は手間もコストもかかってしまうという本末転倒な事態を起こしかねないのです。

人が書くプログラムはその人の個性が出る

「プログラミング言語」という名前が示すように、プログラマーにとってコードは意味のある文章のようなものです。そのため、書き手によって個性があり、他のプログラマーが書き直しをする際にも読みやすいコードが書かれているととても助かるものです。例えて言えば、ある文章を数人に英訳してもらうとします。すると、全文がぴったりと同じになることはまずないはずです。文章の構成や文法の使い方などは人によってそれぞれ違いますが、それでも書かれている内容は同じです。しかし、それをコンピューターの自動翻訳にかけるとどうでしょうか。内容はわからなくもない程度に翻訳されていたとしても、明らかに人間が書いたものではないことがわかるのではないでしょうか。それを文法上誰が読んでも意味の通る自然な文章に手直ししてくださいと言われれば、ほぼ書き直しのようなことになってしまいます。
これはプログラミングに関しても似たようなことが言えます。極論を言えば、コードの生成からプログラムの保守まで全て完璧に人間の求める通りに行うことができればいいのですが、実際は人間にしかできない微調整の部分がとても重要になるので、プログラマーの仕事が不要になることはありえないのです。

コンピューターと人間で分業

では自動生成は全くだめかというとそうではなく、コンピューター向きの作業と人間向きの作業を分けることによって、プログラマーの負担を軽くすることはできます。考えなくてもいいようなひな形的なコードはコンピューターに任せればいいですし、かゆいところに手が届くようなコードは職人の手が必要です。これらのことを考えていくと、いくらコンピューターが自動生成できるようになったとは言っても、それが全て人間の仕事に取って代わるというのは極端な発想であって、プログラマー不要論の理由にはならないのです。