Soylent: A Word Processor With A Crowd Inside
code.google.com
code.google.com
Just a few decades down the line, and now computers can get humans to do all sorts of things that only humans can do well.
Really smart, interesting concept. I'm not sure I trust other random people to correct my grammar though.
[1] Thanks to Mr. Kenuda, 11th Grade Physics teacher, who convinced me to watch that movie.
I imagine it would work something like this:
- Select the files/directories/blocks of code that you want the refactoring applied to.
- Describe (in english) what the refactoring work should be, and do an example on one piece of the code.
- The work gets split (by file?) and distributed via a mechanical turk-like interface (extra points if it opens tasks in your favorite editor with syntax highlighting). As workers submit their work, the code is automatically built and tests are run (could be a callback to your local development environment, so you don't have to worry about shipping all your code up to the cloud and figuring out how to build it there).
Could be pretty awesome, particularly if you could enlist an army of freshman CS majors, bored programmers, and eager overseas engineers. I wonder if intellectual property concerns would be too high for people to actually use it though.
EDIT: If I still worked at Google, this would be a fun project to try internally as 20% project. There are lots of mechanical refactoring tasks that need to be done across large portions of the codebase, good build/test infrastructure to easily verify success/failure for a given task, and lots of bored/eager engineers that feed off of reward-based systems:)
"Expand these bullet points into a 5 page paper"
Even though it mentions things that are along the lines of correction, this could pretty easily be moved into the realm of crowd-sourced cheating.
What really impresses though is not that it works. It is the Find-Fix-Verify design pattern which tries to set some good practices in crowd-sourcing. For example in GUI/web engineering MVC is considered good practice.
Refference: Bernstein, M.S., Little, G., Miller, R.C. et al. Soylent: A Word Processor with a Crowd Inside. UIST '10, ACM Press (2010)
hmmm
Might work better if you write a test for the code.
http://groups.csail.mit.edu/uid/turkit/
And I think TurKit is part of the back-end for Soylent.