For the record, the code inferencer demo program mentioned, Djinn is available at http://hackage.haskell.org/package/djinn and can be installed as the Cabal package "djinn" if you have the Haskell Platform installed. Also, you can do this sort of code inferencing in straight Haskell: see Oleg's demo code here: http://okmij.org/ftp/Haskell/types.html#de-typechecker
Parametricity is great. In all seriousness, and not just on this first day of the month!
Will I be able to add security loopholes in Google production code by submitting such code + some innocent testcases to some unknown open source project?
This is very clever prank! Why don't we train Google Brain to write code that requires less testing... at least avoiding mistakes that humans make :-) I'll probably pass on alpha opportunity, but do count me in for beta!
where one would write the test first and then write the code to satisfy it.
I don't think it would be possible to write the test case and the write the code to satisfy it. If it is possible , it will be the revolution in software era.
Kaue, could you spoil Mew's location, please? Kidding!!! BTW, I hope this isn't another prank.. got really excited about it! Great job, anyways! Cheers!
Fiction imitates real life: I just published a PLDI'14 paper on actually (no joke) generating code for TDD: https://homes.cs.washington.edu/~perelman/publications/pldi14-tds.pdf Unfortunately, I have not yet achieved 100x programmer productivity improvements using the real thing.
I dont think this is impossible. The possibility of auto code generation that matches your tests is smart way for going about writing all possible used cases. How ever I am wondering if there is a possibility to even write all test cases given a few cases are written. So humans write a few testcases, Code writes more edge test cases be following QA guidelines. These then drive production code. I think this is effective utilization of human knowledge
I'll start with of course this was an April fool's joke. Wow.
But for those getting excited at the prospect...
Of course, writing tests takes about 100th of the time of designing application structure and the writing code, doesn't it? The productivity gains would be nothing like as high as the suggestion.
My guess would be that best one could hope for in a tool such as this (when it finally does appear) would be around doubling the output.
Having something write code for you may be fantasy today, but reality soon; the productivity gains are just PURE fantasy.
This is my favorite april fool's day prank up to now. :)
ReplyDeleteAs a next step i suggest you find a way to automate the test writing.
Oh, and please sign me up for your alpha release ;)
This is 1st April joke or real ?)
ReplyDeleteApril 1st 2014 :-)
ReplyDeleteFor the record, the code inferencer demo program mentioned, Djinn is available at http://hackage.haskell.org/package/djinn and can be installed as the Cabal package "djinn" if you have the Haskell Platform installed. Also, you can do this sort of code inferencing in straight Haskell: see Oleg's demo code here: http://okmij.org/ftp/Haskell/types.html#de-typechecker
ReplyDeleteParametricity is great. In all seriousness, and not just on this first day of the month!
Will I be able to add security loopholes in Google production code by submitting such code + some innocent testcases to some unknown open source project?
ReplyDeleteDoes the team now only write tests for "real TDD"?
ReplyDeleteI am interested to alpha test this public Program synthesis tool
ReplyDeleteInnovative stuff!
ReplyDeleteBest one today!
ReplyDeleteVery interesting, I definitely want to try the alpha release!
ReplyDeleteIf this is for real, I'd love to try this else it's a good prank, google!
ReplyDeleteThis is very clever prank! Why don't we train Google Brain to write code that requires less testing... at least avoiding mistakes that humans make :-) I'll probably pass on alpha opportunity, but do count me in for beta!
ReplyDeleteIt‘s *REAL* real?
ReplyDeleteIs it prank or real?
ReplyDeletewhere one would write the test first and then write the code to satisfy it.
ReplyDeleteI don't think it would be possible to write the test case and the write the code to satisfy it. If it is possible , it will be the revolution in software era.
Kaue, could you spoil Mew's location, please? Kidding!!!
ReplyDeleteBTW, I hope this isn't another prank.. got really excited about it! Great job, anyways!
Cheers!
Awesome. Is this going to be available for Java as well? The example snippet seems to be in Python.
ReplyDeleteI am such a sucker.
ReplyDelete=) hahahaha very funny
ReplyDeleteFiction imitates real life: I just published a PLDI'14 paper on actually (no joke) generating code for TDD: https://homes.cs.washington.edu/~perelman/publications/pldi14-tds.pdf
ReplyDeleteUnfortunately, I have not yet achieved 100x programmer productivity improvements using the real thing.
I dont think this is impossible. The possibility of auto code generation that matches your tests is smart way for going about writing all possible used cases. How ever I am wondering if there is a possibility to even write all test cases given a few cases are written.
ReplyDeleteSo humans write a few testcases, Code writes more edge test cases be following QA guidelines. These then drive production code. I think this is effective utilization of human knowledge
I'd like to please consider me for the alpha release
ReplyDeleteThis is the only April Fool's prank that got me this year...
ReplyDeleteI don't bite it! I want to see that!
ReplyDeleteSo my days are numbered as a developer...Never too late to catch my guitar again and hit the road :-)
Please Consider me for Alpha Release.
ReplyDeleteI'll start with of course this was an April fool's joke. Wow.
ReplyDeleteBut for those getting excited at the prospect...
Of course, writing tests takes about 100th of the time of designing application structure and the writing code, doesn't it? The productivity gains would be nothing like as high as the suggestion.
My guess would be that best one could hope for in a tool such as this (when it finally does appear) would be around doubling the output.
Having something write code for you may be fantasy today, but reality soon; the productivity gains are just PURE fantasy.
real intresting stuff, would like to try it
ReplyDeleteI want to try it!
ReplyDeleteI want to real TDD
ReplyDeleteif there were one, I wanna try it.
ReplyDeleteThis sounds great! I'd like to try it.
ReplyDeleteSounds like an interesting idea, would be happy to try it!
ReplyDeleteThank you
I got to "where you write only the tests and have the computer write the code for you!" before checking the publication date.
ReplyDelete