⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

This page could do with a complete rewrite. Could the folks who've created tasks (and have wanted to create tasks; It's good to know what the questions are.) please step in to discuss and create one? --[[User:Short Circuit|Michael Mol]] 19:20, 19 December 2009 (UTC)

== Some Ideas ==

The general points for a task are:

  • Obvious things: ** Please don't replicate an existing one! ** Put {{task}} at the top. ** Put a clear description (using English, plus math and pseudocode as appropriate) next. Add links to wikipedia to help if that makes things better. ** Then put at least one implementation of the task. Don't make tasks until you've checked that you can do them (and that the code works, of course).

  • Not so obvious things: ** Ideally, a task should be solvable in no more than a page or two of code depending on verbosity of the language being used. ** A task must support implementations in many languages. Note that in some cases, this can mean that the nature of the solution changes somewhat with different languages. Also note that if a task is not implemented in at least two languages, it could well be because the description is good enough yet. ** Some existing tasks are basic ones (“show what a simple counting loop looks like”) but others are more complex ones that admit more variability of implementation. The basic tasks aid fundamental understanding of the mechanics of each language, and the complex tasks illustrate the general principles of how each language is used to make a program. These are distinct purposes! When creating a new task, keep in mind which of these general classes of task you are creating an instance of; it helps to guide what you write. ** Add the tasks you create to your Watch List so that you can look after them, fielding any queries that people have about it (usually expressed on the talk page). ** Occasionally you end up with someone going through and deleting a lot of content from tasks in a misguided attempt at some notion of purity. This isn't very nice, but remember you can use the page history to recover the lost content and undo the damage. But don't get into an edit war over this! Try to identify why they are doing it and improve the deleted content so that it is retained in principle, but less problematic. (This requires some good taste. Spam is just spam. Some people clean pages up which can involve some deletions; if the content is just being moved to a sub-page, that's OK so long as there's a proper heading and link in place.)

I know it's not pretty yet. But does it need any more issues covering in general? –[[User:Dkf|Donal Fellows]] 09:25, 20 December 2009 (UTC)