13 Dec 2012 eMBee   » (Journeyer)

RosettaCode vs Stack Overflow

Stack Overflow is a great site. Every time when a search on a problem takes me there i look forward to the helpful and insightful answers. In ways, posting a question on Stack Overflow is similar to creating a task on RosettaCode.

On Stack Overflow a problem gets posted in form of a question, and people attempt to solve the problem by answering it. Question and answers can be discussed and updated. Once the poster of the question is satisfied, an answer may be chosen as being accepted.

On RosettaCode a problem gets posted in form of a Draft Task and people attempt to solve the problem by creating an implementation in their favorite language. Task and implementations may be discussed and revised until a consensus is found. Once discussion stabilizes and people focus on implementing, the task may be promoted from Draft Task to Task status

The key difference is that the questions and answers on Stack Overflow can be of various qualities. There are lots of duplicates, and not always are the answers useful. On RosettaCode on the other hand the poster is motivated to solve the Task her or himself. Also the goal of all Tasks is to produce a usable implementation, and the discussion does not end when an answer is accepted by the poster but it continues until a consensus for an acceptable task definition is found. And then after that the Task stays active as long as new solutions in different languages get added. Also RosettaCode gets referenced frequently in Stack Overflow discussions

On RosettaCode people are not motivated to answer by getting points but because the answer helps shape the Task and thus ultimately the quality of the whole site. They take ownership of the task by providing their implementation. They don't want to help a fellow with a question but produce something of lasting benefit for all future visitors of the site.

As Stack Overflow grows, it will be harder and harder to sift through all the questions to find the right answer, whereas the growth of RosettaCode will lead to a library of problems and solutions where one can find practical code examples that have a clear relationship to the question (the Task) with several complete implementations that allow for analysis and comparison.

When i have a problem to solve i try to see if it is generic and interesting enough for RosettaCode. Then i formulate a Task, and make an attempt at solving it myself. The discussion often helps me to identify problems that i had not foreseen, edge cases, and different approaches. Every new task includes a lot of learning and goes beyond just solving the immediate problem.

I don't know if the creator of RosettaCode had this kind of use in mind, but i hope he can see the value of this approach. And it is not only new Tasks that get created this way, but also solutions to existing Tasks too. Just in the past week i found three Tasks that were directly applicable to problems i am currently solving. And one of the Tasks motivated me to produce a generic solution to a problem that i had solved in an adhoc manner before.

By using RosettaCode i am not just solving problems for myself, but i help generate solutions that are useful for other people too.

Syndicated 2012-01-09 17:58:55 from DevLog

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!