Deep Coder

Posted by in 未分類, on 2017-02-26

ついに自動でプログラムを書くAIの登場か?

「マイクロソフトの新しいAIは、他のプログラムのコードを拝借してコードを書く」/ Business INSIDER
https://www.businessinsider.jp/post-1040

DeepCoderはコードの入出力を調べ、どの入力部分がどの出力結果に結びついているかを学習し、(問題を解決できる)新しいプログラムを作り出す。

とのことです。

これが実用的になると期待を膨らませる人、仕事がなくなるのではと不安を持つ人、様々な人によって議論が巻き起こりそうです。
私もプログラム教室を運営する身として、ただならぬ(?)ことですが、自動コーディングというのはコーディングを楽にしてくれるものと思います。すでに便利なフレームワークやVisualStudioにあるような、目的のプロジェクトに応じたコードのひな型を作ってくれる機能などがもっと進化したものだと考えます。
オープンソースが膨大に生産されている現在、これらを有効活用するにはその内容を解析して利用したい人に提供する仕組みが必要です。すでにこの世の中にある膨大なデータはもうAIなしに人手だけでは活用できないレベルになってきていると思います。データだけでなくプログラムが活躍する場面もどんどん増加する中、逆に言えば人だけでは作り切れないといえるのではないでしょうか。
私の結論から言えば、プログラマはこれからもどんどんと必要とされると思っています。
(20年以上前にもソフトウェアクライシスといわれたことがありました。ソフトウェアエンジニアの不足が予想されていたのです。現在これはオープンソースの普及や便利なツールによる開発の効率化によりカバーされています。これからのエンジニア不足は、AIによってカバーされるのかもしれません。)

最近、よくどんなプログラム言語がよく使われているか、現実的な話としてどの言語が一番稼げるか、またこれから先どの言語が生き残っていくか、など議論されます。それによって学ぶ言語を選択する参考にするのでしょう。
私がプログラムを始めたころはインターネットもWindowsもない時代だったので、言語も限られていました。テクノロジーの進化とともに必要に応じて新しい言語を学んでいけばよかったので、比較的楽に多数の言語を習得できました。現在多数の言語がある中、初心者がどれを学んだらいいか、と聞かれると実はとても迷います。
しかしプログラムを長期にわたって使っていくという人であれば、どんな言語でも学ぶことを薦めたいです。それぞれの言語には得意分野があり、その言語を学ぶことはその分野を学ぶことに通じます。作りたいものが明確にあれば、その分野で使われている言語を学んだ方がいいでしょう。もし具体的にない場合や、プログラミング自体を学ぶ目的であれば、どのような言語を学んでもいいと思います。
小学生が最初にプログラミングを始めるとき、Scratchというビジュアル言語をよく使いますが、これはとても親しみやすく素晴らしいツールだと思います。プログラミングの楽しさを味わえるからです。子供用のお遊び言語と思われがちですが、私はプログラミングを楽しさを忘れた(知らない)、職業プログラマにぜひやらせたいです。
あとよくありがちなのが、一つの言語を覚えると、そればかりでいろいろとやろうとすることです。その言語が苦手なことはさせずに、他にふさわしい言語があればそれを試してみるのもいいと思います。一つの言語がしっかり修得できていれば、それほど学習コストはかからないでしょう。(文法よりもライブラリの差異が大きい)

これからのキーワードは「多様化」だと思います。IoT時代いろいろなモノに個性的なコンピュータが乗るようになります。
プログラマに要求されることも多様化するため、たくさんの引き出しを用意しておくことが必要です。そういう意味でも、あらゆるプログラム言語に興味をもち、使えるようにしておくといいのではと思います。

懐の深~いコーダーになりましょう!