
Microsoftなどが学習機能を持つ自動プログラミング技術を開発 50
ストーリー by hylom
いつかはVSに搭載されるのだろうか 部門より
いつかはVSに搭載されるのだろうか 部門より
あるAnonymous Coward曰く、
Microsoftがケンブリッジ大学の研究者らと協力し、「仕様通りに動くコード」を自動生成するシステム「DeepCoder」を開発しているという(Microsoft、TechCrunch 、Slashdot)。
このソフトウェアはさまざまなコードの断片を記録したデータベースから、仕様に沿ったものを選択して組み合わせることでソフトウェアを自動開発するというもの。さらに学習機能も持ち、使えば使うほどコードの品質やコード生成速度が向上するという。ただ、現時点のDeepCoderは約5行分のコードを作る能力しか持っていないという。
あとは (スコア:5, おもしろおかしい)
みろ、仕様書がゴミのようだ!
------------
惑星ケイロンまであと何マイル?
Re:あとは (スコア:2, すばらしい洞察)
要は「顧客が本当に必要だったもの [nicovideo.jp]」の絵で言うと、
アウトプットが「プログラマのコード」の絵から「プロジェクトの書類」の絵になるというだけで、
何も解決していない。
Re:あとは (スコア:1)
問題は、なにをmeanしているかを勝手に解釈されることなのだが。
Re:あとは (スコア:1)
# jargon fileネタ
Re:あとは (スコア:1)
半分ネタだろうけどネタ抜きで同意。
人間の仕事が仕様書作成という名のメタプログラミングに移行して、ますます高度なプログラマが求められそうな気がする。
Re:あとは (スコア:1)
最終的には自分が何をほしいのか正確に定義する能力が求められる
#キリツグにもその能力があれば…
Re: (スコア:0)
しようがないな~キリツグは~
Re: (スコア:0)
MSも、昔のエクスプローラでは実現できていた挙動が再現できてない。
仕様書は昔のエクスプローラだ。
特にUI関連みたいな部分に関しては、痒い所に手が届くような工夫って、簡単に仕様書に盛り込めるものではなさそうな気がします。
Re:あとは (スコア:1)
我々は、仕様書を作る為の仕様書を・・・
Re:あとは (スコア:1)
結局、仕様書を書くことがプログラミングと呼ばれるようになって…
あれ、今書いてるコードって機械語じゃないし、仕様書なんじゃ…?
思った通りに動かないって? (スコア:0)
しようがないよ。
Re: (スコア:0)
しようもな
Re: (スコア:0)
どうせ、仕様を新たなスクリプト言語で記述するんでしょ。
『42』 (スコア:3)
しかし、誰も仕様書の中身を知らないのであった。
Re: (スコア:0)
もう開発完了でしょ? (スコア:1)
しかもわずか5行で実現してくれるという
Re:もう開発完了でしょ? (スコア:1)
Optimiseまで自動でやれるのかな、でないとぐちゃぐちゃに肥大化した無駄システムになったりして。
Re: (スコア:0)
そこは富豪的な何かで解決
Re: (スコア:0)
AI「では、あなたの要求仕様通りに動くコードを生成しましょう。
その前に、お手本となる『仕様通りに動くコード』をください」
(学習、そして生成)
人間「おいおい、どこが仕様通りなんだよ?」
AI「GIGO [wikipedia.org]」
# 完璧に書かれた仕様書はプログラムと見分けがつかない -- A.C.苦楽
遺伝的アルゴリズムでソート (スコア:1)
何の本で読んだんだったかな.複雑系科学的な本だったと思うんだけど、詳しい解説は全然なかったけど
数列をソートするというアルゴリズムを、遺伝的アルゴリズムを使って育てたという話を思い出した。
最初は何もソートしなかったり、無茶苦茶なソートをする奴らばかりなんだけど
それらを交配させてよりよい成績のアルゴリズムを選別して残していくんだと。
わりと速い優秀なアルゴリズムが出来たんだと。
でも中身を覗いてみると“何をやってるのかさっぱり分からないもの”が出来てたとか。
Re: (スコア:0)
遺伝的アルゴリズムに限らず、人工知能はブラックボックスなものが多い。
Re: (スコア:0)
遺伝的アルゴリズムによる学習といえば、このシリーズ
https://www.youtube.com/watch?v=QE3SSKBdI00 [youtube.com]
# 個人的には驚異の小宇宙・人体に近い感動のようなものを覚えます
Re: (スコア:0)
確か,ソートしにくいデータを対抗進化させていたような
5行も書けるのなら (スコア:1)
実装が5行分の、仕様が明確で再利用できるモジュールを書かせて組み合わさせて行けば、実用プログラムにも達する?
そこまでは賢くない?
Re: (スコア:0)
/*
おれこのプロジェクトが終わったら
あのと結婚するんだ!
あれ?コード書く行数が足りない???
*/
Re: (スコア:0)
物理行数かよ!
ところで「あのと」ってだれ?
Re: (スコア:0)
えっ、お前知らないの?みんなとっくに知ってるよ
Re: (スコア:0)
nullかvoidだろw
Re: (スコア:0)
3重以上のループが必須だとかなり見苦しくなりますね。
#言語は適当
module_a:
for () {
module_b.something();
}
;
module_b:
something() {
for () {
module_c.something();
}
;
module_c:
something() {
for () {
doit;
}
;
あとは (スコア:1)
顧客要望を刈り取り、仕様書を自動生成するAIと、
顧客への御用聞きをするAIと
顧客からの改善要望を仕変にまとめるAIと
顧客からの無理な価格改善要望を突っぱねるAI
の生成だけですね。
#顧客がAI化される方が早いのかもしれん。
行数が少ないなら、1行にコードを詰め込めばええんや (スコア:0)
つまり、ワンライナーの5倍の能力と…ゴクリ
Re:行数が少ないなら、1行にコードを詰め込めばええんや (スコア:1)
どこがDeepやねん。
the.ACount
Re: (スコア:0)
結構いろいろできそう
Re: (スコア:0)
あと2行増えても大丈夫なまでに進化すればDeCSSぐらいは書けるという事で。
自動学習するのが新しいんですよね? (スコア:0)
自動生成なら以前からありますし。
http://www.terasoluna.jp/product/tool/visc.html [terasoluna.jp]
Re: (スコア:0)
中の人(コード書けない)ですら、コイツ使う手間ヒマあったら直接コード書いた方が、だけどな。
ネタ抜きでVisualStudioやAndroidStudioの新規プロジェクト作成時の雛型レベルが、今の所無難な落としどころかと。。
新規コード作成より (スコア:0)
既存コードの改善のほうが見込みがありそうな気がする。
新規コードの作成は、仕様の曖昧さという問題がつきまとうので、現実世界でものになる気がしない。
「既存コードの動作を変えない」という制約条件のもとで、コードの速度and/or保守性を改善するプロジェクトにしたらどうか。
例えば、重要なマジックナンバーがハードコーディングされているのを発見して、適切な名前を付けた定数定義にしてくれるとか、見込みがありそう。
適当に書いたやっつけコードをきれいに整えてくれるAIとか、素敵じゃない?
Re: (スコア:0)
速度の改善なんか根本的なアルゴリズムを採用するよう仕様を直すとかもっと実行環境に寄った最適化するとか、どちらにせよこのシステムのターゲットより上か下のレイヤーですることでしょ
保守性も全く不要。このシステムが吐いたコードを保守する作業なんかこのシステムにさせればいいだけだろう
Re: (スコア:0)
元コメのどの部分に対して「なんで?」と言っているのか。
Re: (スコア:0)
そもそも新規コードの作成じゃなくて既存コードのコピペを目指すプロジェクトなんだし
元コメについてはタイトルからして「何で?」という疑問しかない
Re: (スコア:0)
曖昧なものを空気読んで適切な形にする事を求めている点において、
仕様を実装に変換するもの、腐ったテキストを人の読めるテキストに変換するもの
実現性の見込みの違いがあるだろうかね。
適当に書いたやっつけコードをきれいに整えてくれるAIとか
こういうのはAIを用いて解かれるべき問題とは違うのではと。
パターンマッチとコピペだけで (スコア:0)
コードをでっち上げられることはfizzbuzzすら自力では書けない日本のSIerの派遣エンジニアが実証済みだからな。
Re: (スコア:0)
Stack Overflowからのコピペで作ってるオレは失業してしまうのか。
Re: (スコア:0)
IDEの次世代機能としてStackoverflowと融合して、検索窓に要求を打つと候補コードが出るようになるかも。
[ini file load]とか
組合せの爆発力 (スコア:0)
>使えば使うほどコードの品質やコード生成速度が向上するという。
>ただ、現時点のDeepCoderは約5行分のコードを作る能力しか持っていないという。
ここに「最適化」が絡んでくると、そこそこの規模でも完成に膨大な時間がかかったりして。
その結果「手で書いた方が早い」に戻ったりして。
‥実用レベルのしきい値はどこだろう。
Re: (スコア:0)
最適化もなにも、仕様を満たすものができればOK、でいいと思うよ。
もっと効率的にしたければ、そういう縛りを仕様として与えればいい。
これ以上は実現不可能というギリギリのラインを求めて膨大な時間を費やしても、
そもそもそのコストが見合うかどうか、という話になるんで、
結局は、実用上問題ないレベルの仕様で妥協しようか、ということになる。
偏見ではあるが (スコア:0)
ファンクションポイントで見積もれる中身はほとんどデータベースと画
面のやりとりだけみたいなプログラムなら自動でつくれそう。偏見
行間を読む機能もお願いします (スコア:0)
あと、こうしたらいいんじゃないかと提案してくれる機能も
Re: (スコア:0)
行間は読めるようになるでしょうね。
問題は結果の定義だ。
それを学習させれば空気を読むことさえ可能になるだろう
プログラミング単価が下落するのは目に見えてるな (スコア:0)
10年先ないかもしれない産業だなぁ