
Deepcoder builds programs using code it finds lying around - vikiomega9
https://techcrunch.com/2017/02/23/deepcoder-builds-programs-using-code-it-finds-lying-around/
======
lacker
As far as I can tell, even figuring out how to add two numbers together is
beyond the state of the art of any deep learning + programming systems. (They
can do it for a limited number of digits, but not discover the "loop" part.
Not an expert so I could be wrong but would love to be schooled by a real
expert here.) So I am doubtful this will actually work on any problem, even
ones of trivial complexity.

------
apple-hammer
This has been bubbling for a while.

[https://techcrunch.com/2014/02/17/microsoft-launches-
smart-v...](https://techcrunch.com/2014/02/17/microsoft-launches-smart-visual-
studio-add-on-for-code-snippet-search/)

[http://codesnippet.research.microsoft.com/](http://codesnippet.research.microsoft.com/)

Things will continue to simmer and obviously we are safe for a few more years
but I for one welcome the day when machines replace us.

Anyone aware of any opensource repos that we can help contribute to on this
topic?

------
dualogy
Well guys it's over. Buy a cow and find yourself a meadow :D

Next up, this is gonna turn the Node.js script kiddies that copy-and-paste
together modern society's infrastructure from Stack Overflow into copier-
pasters of "Deepcoder specs", which doubtlessly over time will become ever
"easier to get wrong", until "Deepspecr" shows up to close _that_ gap as well.
The saddest part, it'll probably _improve_ the quality of code-bases on the
whole..

~~~
_pmf_
> Buy a cow and find yourself a meadow

Not with autonomous farming robots lurking right around the corner to take my
job!

~~~
dualogy
Just for you, not as a job. One cow lasts a man a year if he eats nothing else
and isn't picky with the cuts. That's ignoring cow reproduction though ;)

------
SNBasti
Well, it's obvious that there will be an improvement in specifiying the syntax
for a computer program as it has been for the last decades.

e.g. Assembler -> C -> C++

There recently has been a post @ HN about the missing programming paradigm
([http://wiki.c2.com/?ThereAreExactlyThreeParadigms](http://wiki.c2.com/?ThereAreExactlyThreeParadigms)).
With the emerge of smarter tools, programming will get easier in one way or
the other, releasing the coder from a lot of pain ( as C or C++ did realse us
from tedious, painful assembler ). However, I am quite sure that it won't
replace programmers since our job is actually not to code but more to solve a
given problem with a range of tools. Smarter tools will probably boost
productivity of a single person to handle bigger and more complex
architectures or other kinds of new problem areas will come up. Research will
go faster. Products will get developed faster. Everything will kind of speed
up. Nevertheless, the problems to get solve / implement will remain until
there's some kind of GAI. If there's an GAI smart enough to solve our problems
probably most of the Jobs have been replaced.

~~~
pasquinelli
As a janitor, I feel the same way. By the time a robot can cost effectively do
my job, _everyone_ will be out of work. My job even requires motor skills!

------
hacker_9
This is cool, but still is affected by the same local vs global scope problem
that all bottom-up algorithms suffer. The NN will piece together small
snippets (local scope) to produce large snippets and then larger snippets and
so on. The problem occurs when it can't understand what it has created (global
scope), and therefore can't streamline the code in obvious ways:

1\. combining loops.

2\. removing repeated logic.

3\. understanding memory problems (i.e. when to use a list vs a lazy list).

4\. finding performance hotspots and understanding how to fix them.

5\. non-maintainable output likely, and seeing as humans need to edit the
final code, this becomes a big problem.

Those last three points are why this stuff is fine for contests, but no one is
going to want to use it in production. Not even getting started on how do you
define a complex algorithm without getting into a ton of ambiguous cases.

------
dbwest
Saw this part and got curious: "Programmers note that a system like this can’t
build larger projects out of small snippets of code which, to be fair, sounds
like whistling past the graveyard."

So I clicked on the original link and saw this: "At the moment, DeepCoder is
only capable of solving programming challenges that involve around five lines
of code. But in the right coding language, a few lines are all that’s needed
for fairly complicated programs."

A far cry at this point from "OUT of the way, human, I’ve got this covered. A
machine learning system has gained the ability to write its own code."

Still it's been amazing how much has been done with deep learning in such a
short period of time.

I wonder when this will change from seeming like an advanced code snippet
finder/synthesizer to an actual skilled coder.

------
jcoffland
Show me a complete and nontrivial program built by Deepcoder or something
similar and then I'll worry.

~~~
tluyben2
You won't have to worry for a long time to come :)

------
homarp
previous discussion
[https://news.ycombinator.com/item?id=13711910](https://news.ycombinator.com/item?id=13711910)

------
thom
If they'd just built it in Flare, we'd have the singularity right now.

[http://flarelang.sourceforge.net/](http://flarelang.sourceforge.net/)

~~~
hacker_9
Isn't that just Lisp?

~~~
dbwest
From the Flare website

"4.1: Why is the Singularity Institute interested in Flare?

"AI has always been one of the traditional drivers of programming language
advances, although usually for the wrong reasons. We don't think AI is so
simplistic that the thought processes have anything to do with the idioms of
the underlying programming language, but we also think that current
programming tools are simply inadequate. It would be really hard to code an AI
in a non-object-oriented language and it probably won't be easy to build AI in
a non-annotative language either. Flare, an extensible language easily
modifiable by Flare programs, will let us write more powerful tools, and will
let the AI introspect and tinker with its own source code, without our needing
to become compiler and interpreter specialists."

"If there's no production-quality Flare language by the time the Singularity
Institute begins writing code on the AI project, as seems likely, then we'll
probably be forced to write pseudo-Flare programs in Python, at least for the
prototype. But we won't have to like it, and we'll still want to switch to
Flare as soon as possible."

The Singularity Institute has embarked on a long-term quest to develop real
AI. They don't want to stop there, either; they want to develop recursively
self-improving AI, Friendly AI, and transhuman AI. The Singularity - the
technological creation of greater-than-human intelligence - is a quest of such
mind-boggling importance and earthshaking impact that our words cannot even
begin to describe it. (You should go read their website.) Even if you've never
heard of the Singularity Institute and you're getting involved in Flare solely
because you love annotative programming, we still hope that you get a warm
fuzzy feeling from helping to bring about a swifter and safer Singularity. "

