Microsoft Research Developing An AI To Put Coders Out of a Job (mspoweruser.com)
jmcbain writes: Are you a software programmer who voted in a recent Slashdot poll that a robot/AI would never take your job? Unfortunately, you're wrong. Microsoft, in collaboration with the University of Cambridge, is developing such an AI. This software "can turn your descriptions into working code in seconds," reports MSPoweruser. "Called DeepCoder, the software can take requirements by the developer, search through a massive database of code snippets and deliver working code in seconds, a significant advance in the state of the art in program synthesis." New Scientist describes program synthesis as "creating new programs by piecing together lines of code taken from existing software -- just like a programmer might. Given a list of inputs and outputs for each code fragment, DeepCoder learned which pieces of code were needed to achieve the desired result overall." The original research paper can be read here.
https://xkcd.com/1185/
OT but I believe that XKCD has reached the level where it is the embodiment of the old joke where the prisoners (or whoever) sit around telling jokes by reciting the joke's index number. Sometimes you don't even have to look at the XKCD cartoon, you just look at the number in the link and go "yep, that's applicable". (Although in this case I had to look).
I am Slashdot. Are you Slashdot as well?
before I believe it will work.
I worked once on a very large project that tried to do something similar for the Dutch tax service: put the (ever changing) tax regulations in some form of specification language, and compile that to C# code. I was a contractor for some time on that project. After a 160 milion EUR budget overflow and some questions about it in the parliament the project was significantly reduced in its ambitions.
Microsoft documentation of .NET was written by a bunch of people from India who didn't have a good grasp of English and didn't particularly care for their jobs. You can practically feel the anger dripping from every sentence.
Sadly I'm not kidding about that but looking at the summary it sounds analogous to when sound samples were used to replace session musicians with the exception that you describe the music you want and the computer goes away and splices a load of sound samples together into a piece of music which matches your description. Somehow I don't think John Williams needs to worry about his job
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
The world of code is more like this:
Software is inherently different to hardware, so you make a valid point. Though in a more perfect world, in which interoperability was forced by hook or by crook (so, if you don't use standards, your code repo gets raided until people can figure out how to interoperate with you) the software world itself would probably be more streamlined anyway as those who have built their existence on lock-in become eliminated.
Arguably though, for software all that has to be done is protect open source and Free Software, because eventually it will destroy all other software. It has a tendency to surpass commercial software given enough time and attention, and it has a tendency to attract that attention in proportion to the need — as Linux has proven.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Of course there are many requirements specification languages. I doubt if any of them cover tribal knowledge or situations where the people being relied on to provide the specifications, sensing that they were about to be automated out of a job, supplied incomplete or inaccurate data. In this case, the Microsoft tool would be demonstrating GIGO -- Garbage In, Garbage Out. On the other hand it would do it much faster and more efficiently that a team of developers who, if they were diligent, who start asking questions about inconsistencies in the spec.
The Russians have won. They have made the world a cesspool of distrust, greed, fear and hate.
Indeed this "new" tech (copy pasting junk from Stackoverflow) can't handle simple tasks like division, or modulus.
One programming task I handled, we already had a function which basically computed some averages, using division and a few other simple operations. To simplify, lets's just say the core function was something like quotient(x,y), which would return X divided by Y. That was useful. The customer very much wanted a slightly different version. They wanted quotient(x). That was the requirement for the software, compute quotient(x). I'd like to see any AI produce code for that. I, a programmer, did eventually get the customer what they needed.
My current assignment I'm working on today is similar. It's basically "write an SQL query which returns the list of software products we have in our database, and for each list all of the operating system versiona they can run on". Sounds simple, right. The relevant data is a table of about a million rows in this form:
SoftwareID - ProgramName - Vendor
1 - Firefox - Mozilla Foundation
2 - bash - FSF
3 - jQuery - jQuery Foundation
I'd love to see some IA that writes a query to get, from the above table, information about which OS versions each software package can run on. That's my task as a programmer, the requirements set by the product manager. I'll take care of the need, get the job done. I may also strangle my product manager, but that's a different topic.