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..
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 ;)
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.
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).
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.
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!
"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. "
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.
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.
16 comments
[ 13.7 ms ] story [ 244 ms ] threadNext 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..
Those people who know nothing about horses and riding, getting all this meaningful work done just by throwing technology at it!
Not with autonomous farming robots lurking right around the corner to take my job!
https://techcrunch.com/2014/02/17/microsoft-launches-smart-v...
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?
e.g. Assembler -> C -> C++
There recently has been a post @ HN about the missing programming paradigm (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.
http://flarelang.sourceforge.net/
"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. "
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.
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.