プログラムのコードがやることを視覚化して初心者にプログラミングを理解させるDeep Algoのクラウドサービス

今週行われたTechCrunch DisruptのStartup Alleyで、ルックス的にもすばらしかったスタートアップのひとつが、Deep Algoだ。このフランスのチームは、C++やC#、JavaScriptなどのプログラミング言語を、WYSIWYGエディターでHTMLを書いて/見ていくときのように、大衆的で分かりやすいものにするSaaSを提供している。

それはかなり大胆な主張だが、同社は、この方法で、複雑なプログラミング言語を初心者でも十分に扱えるようになる、と自信を示している。

CEOのXavier Lagarrigueはこう語る: “IT以外の社員でもプログラムのコードを理解できるようにしたい。テクノロジーにとってはプログラムのコードが入力であり、あとはすべて自動的に処理される。うちはコードからまずビジネスのコンセプトを取り出して、それから質問を構築する。ユーザーは質問をセレクトし、その答をコード中に見つける。プログラマーでない人でも、この形なら十分理解できるはずだ”。

同社のシステムはまずユーザーにソートのフォームを見せて、これに対しプログラムが何をするのかを理解させる。それから今度は処理の各段階をフローチャートのようなもので表し、コードが作り出すアクションを理解させる。学習する社員たちは、その処理の中に自分たちのビジネスの別の側面を見て、システムを自分独自の(仕事よりの)見方で見れるようになる。

ぼくは最初、同社の高邁な約束に対し懐疑的だったが、Lagarrigueによると、単純で堅牢なものを示されるとユーザーは、それに対する“アクション”を作れるようになる、という。“入力としては、何をしたいのかを説明する。それがこのフォーマットの強みだ。コードがやることを、なんでも表現できるから”。

でも、まだ何もかもが初期的段階だ。今4つの企業の協力のもとに、パイロット事業を展開している。今後は、パートナーをさらに増やしたい。課金は、ユーザー一人あたりの単価×ユーザーの数、という形になる。

完全な初心者にプログラミングを教えることには、いろんなトラブルがつきものだ。昔は、誰もかれもがGeocitiesで自分のWebサイトを作っていたけど、でもいちばん多いのは、MIDIによる音楽をバック‘under construction’(ただいま制作中)のGIF画像が表示されるサイトだった。

同社は今後、対応言語をもっと増やしていく予定だ。Lagarrigueによると、その拡張作業は一つの言語につき数週間ぐらいだ、という。



[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

インターネットのあちこちを探しまくって目的のコード片を見つけてくれるDeepCoder、プログラマーの生産性は上がるか?

markus-spiske-207946

ぼくはプロのプログラマーではないけど、でも彼らを真似て、多くのコードをStackOverflowのQ&Aからもらっている。Flaskに認証を加えるやり方は? そんなの簡単。sendmailのシャットダウンの仕方は? ほら、これさ。そして、今やインターネット上のすべてのコードのおかげで、ロボットが年俸18万ドルのプログラマー並に優秀だ。

そのシステムはDeepCoderと呼ばれ、コードのコーパスを検索して仕様どおりに動くコードを構築する。すでにプログラミングのコンペに‘参戦’したこともあり、またコードではなく、複雑なプロダクトを作るための大きなデータセットを見つけることもできる。

彼らのペーパーより:

たとえばIPSシステムを作るためには二つの問題を解決しなければならない。最初に、その問題の解になりそうな適切なプログラムの集合を見つける。そして次は、手元の要件に照らしてそれらのプログラム集合をランク付けする。どれが、今抱えている問題の解として使えそうか? この二つの問題はどちらも、問題の具体的な内容に依存している。したがって、プログラムを組み立てていくための最初の重要な決定は、ドメインスペシフィックな言語を選ぶことだ。

 

このシステムは使ってるうちに次第に賢くなり、どんな場合にどんなコード片が良いのかを、自分で見分けるようになる。そして、そうやって‘学習’を重ねるたびに、ユーザーはプログラムをより早く書けるようになる。

ケンブリッジ大学のMatej BalogとMicrosoft ResearchのAlexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlowがこのプロダクトを作り、その使い方に関するペーパーを共著した。ただし、このようなシステムを使って、小さなコード片から大きなプロジェクトを構築することはできない。そういうのを、‘ないものねだり’と言う。

こういった、既存のコードの切り貼り再利用は、多くのプログラマーが実際にやっていることだから、ディープラーニングの優れた応用と言えるだろう。データベースの更新のようなシンプルなCRUDアプリケーションには、十分に使えると思う。入社したばかりの初心者プログラマーにやらせる仕事がなくなる、と言えるかもしれない。でもAIロボットが地球と人類を支配して、人間の仕事が完全になくなってしまうのも、悪くないね。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

コードの作例が見つかる”コードのYouTube”RunnableにC/C++とJavaが加わり企業別チャネルも提供開始

参考になるコード例が見つかるので“コードのYouTube”と呼ばれるRunnableは、3か月前にローンチしたばかりだが、今日(米国時間1/2)は、サポートする言語が増えたことと、同サイトの上で自分のSDKやAPIを目立たせたいと思っている企業やオープンソースプロジェクトをサポートする仕組み〔==“チャネル”の設営〕の開始を発表した。

Runnableという名前は、デベロッパがコード片を見つけるだけでなく、このサイトがオンラインで提供しているエディタでコードをエディットすると、そのコードをその場で動かして(==runして)試せることに由来している。今日から新たにサポートされる言語は、C/C++Javaだ。どちらも今だによく使われているし、学校で教わることが多い。Runnableの協同ファウンダでCEOのYash Kumarによると、今同サイトの人気トップスリーの言語/APIはNode.js、Python、PHPだ。

最近200万ドルのシード資金を獲得したRunnableは、約1000本のスクリプトからスタートしたが、今では4000近くある。毎月のユーザ数は約15万、そして同社の予想では、今年は順調ならおよそ1000万のコード片が同サイト上runされるだろう、という。

サポート言語が増えたことも重要だが、今日の発表でもっと重要なのは、“コードチャネル(Code Channel)”のローンチだ。これまでは、一つ一つのコード片が8人のチームによって個々に管理されていたが、いうまでもなくそれでは、スケーラビリティが良好とは言えない。そこで、今度できたチャネルという仕組みは、企業やオープンソース組織などが自分のコード(SDKやAPIなど)を一か所でアップロード~管理~共有する仕組みだ。つまり企業や組織は、自分のコードをまとめて“陳列して”ユーザに見せられる。ただしKumarが強調するのは、これはけっしてGitHubなどと競合するディレクトリサービス形式ではないこと。むしろRunnableのチャネルは、デベロッパがRunnableのAWS EC2インフラストラクチャの上で新しいコード集合やフレームワークを容易にテストできる仕組みだ。

なお同社は、パートナー企業に対し、デベロッパたちによるこのサービスの利用状況を示す豊富で詳細な分析データを提供している。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))