プログラミングは人口知能(AI)で自動化されるのか。オックスフォード大発のDiffblueがやばいサービスを出したらしい。

「ai」の画像検索結果

こんにちは、フリーエンジニアです。

 

未経験からフリーランスエンジニアを目指しているのですが、なんか、コーディング自体はが人口知能に代替されるみたいなニュースを見ました。これはリアルに破壊的ですよ。

ainow.ai

 オックスフォード大学のスピンアウトとして設立されたAIを研究するスタートアップ「Diffblue」が、シリーズAで2200万ドル(約24.6億円)の資金調達を完了した事を発表しました。同社は、ソフトウェア開発に人工知能を適応させる事を目指しており、バグ修正、テストライティング、リファクタリング、ある言語から別の言語への翻訳、仕様に合うオリジナルコードの作成、など従来の多くのコーディングタスクを自動化することを目標としています。現在、ソフトウェア開発において一部の側面を自動化することを可能にする3つの製品に取り組んでいます。

  1. バグを自動的に見つけ出しテストを書く製品
  2. 悪用可能なバグに自動的にフラグを立て、それらのバグのテストを生成するセキュリティ製品
  3. ひどく表現されたコードまたは古くなったコードを自動的に書き換えるリファクタリング製品(言語やフレームワークの最新実装に伴う自動アップデートも)

同社は、オックスフォード大学コンピュータサイエンスのDaniel Kroening氏とPeter Schrammel氏によって設立されたスピンアウトによるチームです。今回のラウンドは、Goldman Sachs Principal Strategic Investments、Oxford Sciences Innovations(OSI)、Oxford Technology and Innovations Fund(OTIF)とともに行われます。

 とのこと。これはヤバイ。

Diffblueってどんな企業?

このDiffblueって始めて聞いたんですが、どういう企業なんでしょう。公式サイトにはこんな風に記載されています。

 DiffBlue is a world leader in AI that understands code.Our goal is to automate all traditional coding tasks: bug fixing, test writing, finding and fixing exploits, refactoring code, translating from one language to another, and creating original code to fit specifications.As we progress we are commercialising our blue sky research into a suite of products. Our vision is to make our products ubiquitous, and to make code safer and better and cheaper to produce. We are always looking to hire new talent.

 創業者はDaniel Kroening

創業者のダニエル・クローニングはオックスフォード大学の教授。以下の個人サイトに実績がまとめられています。

参考:Daniel Kroening

人工知能(AI)がウェブサイトの構築を行うADI(Artificial design intelligence)

似たような事例で、ADIっていうのもヤバイです。これはサイト構築をAIがやってくれます。有名なWixというサービスを提供する会社が出しています。

AIデザインアシスタント「The Grid」

こちらは、アップしたテキストや画像などのコンテンツを学習済AIがキレイにレイアウトしてくれるみたいです。

マイクロソフトが学習機能を持つ自動プログラミング技術を開発

また、2017年2月28日には、マイクロソフトがケンブリッジ大学の技術者と協力し、コードを自動生成する「DeepCoder」を開発しているとのこと。ただ、現状は5行分のコードを書くことで精一杯とのこと。ただ、こういった自動化プログラミングが進めば、人間は仕様書をつくるという上流な領域のプログラミング能力は求められそうな気がします。

 

プログラミングの自動化はまだまだ先という意見も

とはいえ、プログラミング自体を自動化するなんてまだまだ先という議論も存在します。

 私個人としてはプログラミングを完全に自動化することは、まだまだ先の未来だと考えています。それこそ人工知能が当然となり、AI が自ら考え新しい物を作り出すことができるようにならなければ、それは不可能ではないかと思います。エンジニアとして「そこまで簡単な仕事はしていない!」という気持ちもありますし、生産性をあげるといった目的のために手をつけるべきはそこではない、とも考えます。もしプログラミングを自動化できたのであれば、それはそもそも型にはまった部分だったのか、それほど難しい箇所ではなかったため、私にはそう思えます。開発以外の箇所で自動化は進められるようになってきましたが、まだまだ私たちが行うプログラミングという世界は、そこまで簡単なことばかりではありません。一つの事を行うにも、複数の方法がある以上、まだまだ機械化できる時代は程遠いと言わざるを得ないでしょう。もしかするとこれは単なるプライドなのかもしれませんが、まだまだ私はそのプライドが技術者にとって非常に大切な物ではないか、そう感じるのです。夢を見ることは悪い事ではありません。将来のためにも夢は必要です。ですがそれを実現するためにあまりにも多くの労力を投入してしまうのは、少々考え物ではないでしょうか。

参考:プログラミング自動化と言う夢:地方からの戯言:エンジニアライフ

まあ、これは3年前のブログなんですが。この方はエンジニアなので、ポジショントークが入っているのは認めていますし、冷静な意見がいいなあと思います。

プログラミングが自動化されてもプログラマーの需要は増える

あと、この記事も勉強になります。

青野 これは難しい質問ですね。自動プログラミングが発達し、プログラマーはいらなくなるという話もあります。でも実際は、プログラマーの仕事は多様化、分散し、爆発的に増えていくと私は考えます。最近では車からテレビまで、ありとあらゆるものにコンピュータが組み込まれていますし、これらの処理を自動化したり制御したりするソフトウェアも開発すると考えると、むしろプログラマーを必要とする分野は拡大しており、仕事はいくらでも出てくるのではないでしょうか。大規模な開発プロジェクトもまだまだ出てくるでしょうし、個人プログラマーが活躍する場も増えると思います。

 たしかに、自動化されてもさらに上流なところでプログラマーが必要になる気がしますね。

最後に

まあ、そんなわけで色々とつまんで見てみましたが、感覚的には、プログラミングはまだまだ価値あるスキルであり続ける気がしています。人工知能を記述する言語はPythonなんですかね。Pythonは難しいイメージがあったんですが、エンジニアの同僚に聞くとそんなことはないとのことなので、ちょっと本でも買ってみようかと思います。