Replies: 9 comments 11 replies
-
To get the discussion started, here are some of my personal opinions. Please remember that they are in no way authoritative, I just wat to share them with others :) Ad 1: I have a somewhat mixed feelings, but I am leaning towards: strict duplicates are bad, similar white kata are ok, similar yellow and harder kata are bad. The most commonly raised argument in favour of duplicates is that newbies benefit them, and I agree with it. Ad 2: I think two kata are duplicates when they can easily be brought down to the same problem statement, with eventually some additional differences like parsing the input, validation, formatting the output, etc. I think that two kata are not duplicates if they present different problems, but can be solved with the same algorithm. Sometimes getting from the task to the algorithm is not obvious, and two different problems (think: descriptions) which boil down to the same approach might not constitute a duplicate. Ad 3: They are bad, so they should be prevented. Good thing is, reviewers are doing usually a good job identifying them. Bad thing is, they often fail to report this fact clearly. When a reviewer finds out that a beta kata is a duplicate, it would be good if they backed the claim with a link to existing, similar kata. Another problem is that kata search works as it does, making searching for existing, similar kata difficult. Ad 4: I don't know. I think it's difficult to create a good general method of handling existing duplicates. There's many of them, and they are sometimes difficult to handle because of differences between them. Maybe when we solve two or three such cases, more ideas will appear. Ad 5: Good thing is that duplicates can be handled: beta kata can be unpublished by a mod, approved kata can be retired by an admin, and kazk agreed he could step in and handle specific instances when a community comes with a clear agreement how to do it. It's also planned to hand out this privilege (of retiring approved kata) to mods, under some restrictions. Ad 6: My general rule would be: when in doubt, aim for quality. Differences in an input and output do not make two kata different for me, so it does not really matter for me if one kata accepts ony ints, and another one accepts floats or mixed types: if they boil down to the same task, any of them can be selected to stay. When kata differ in difficulty ranking, I would choose the one which comes closer to my estimation. When details of requirements cause two similar kata to be of different difficulty, I would pick the harder one ;) When kata differ in terms of available languages, I'd like it to be not a deciding factor: i'd pick the one of better quality and translate it to missing languages (preferrably before retiring remaining duplicates). Ad 7: `content-issues repository on Github is public and has an issue board where issues, discussions, and project kanbans can be created. It would be possible to create issues and discuss specific instances of the problem, create tasks for translators and maintainers, etc. Repo's wiki can be used to create some related documentation or lists (like this one: https://github.com/Codewars/content-issues/wiki/List-of-Possible-Duplicate-Kata). Some support for mods to retire existing kata would be useful, to not engage admins unnecessarily. Kata search could be improved, but I have no good idea how. Thanks for listening! |
Beta Was this translation helpful? Give feedback.
-
Ad (1) If you allow duplicate kata at any rank, I have a hundred fizzbuzz kata for you. It's not the existence of one or two duplicates that is the problem, it's the unbridled duplication that will follow as sure as night follows day. Any, especially new, kata author can play the "but duplicates already exist, so mine should be allowed as well" card. And some will, and then what are you going to say? I would actually be in favour of some duplication in lower ranks, but I see a problem keeping it contained. Ad (2) If you allow identical solutions with different descriptions, I see the same problem: endless "map/reduce/filter my list" kata. Some duplication is good, lots of it is bad, where do you draw the line and how do you defend that line against authors who just want their kata to survive? I would actually be in favour of quite a lot of duplication here, because a lot of interesting problems actually come down to the same solution. But how do you keep it in check? |
Beta Was this translation helpful? Give feedback.
-
Ad (5) Approved kata should not be retired, especially not beyond a certain age ( older than a year or so ). Beta kata are fair game. This because of being a duplicate. Being of bad quality is a different matter, but not the subject here. |
Beta Was this translation helpful? Give feedback.
-
IMHO
|
Beta Was this translation helpful? Give feedback.
-
I would like to contribute as well, if possible:
But the point 2 is really concerning me, idk why this was not detected before, but now you can solve both 4kyu and 2kyu katas by just solving only 4kyu kata 🤷♂️ |
Beta Was this translation helpful? Give feedback.
-
That's my humble opinion, and I'm feel free to contribute if the community needs it XD~~😊 |
Beta Was this translation helpful? Give feedback.
-
Ad (2): Different input or output encodings should not make kata not duplicates. This is somewhat of a gliding scale, but stringifying inputs or outputs does not make kata different ( and generally does not meaningfully add to any task ). Adding input validation is frowned upon, why would other input handling be different? ( Just use appropriate datatypes in general. ) Other opinions are available, but this is mine. |
Beta Was this translation helpful? Give feedback.
-
I do see these as a problem as it leads to a higher amount of maintenance, i.e. resolving suggestions and issues in discourse, updating descriptions, dependencies and so on.
If the solution is a near copy and paste of another kata of the same rank, I would count it as duplicate. I think it's fine for lower ranked kata to introduce one to certain concepts and then having higher ranked kata build on top of that knowledge.
Absolutely. I'm not sure yet what the kata approval process looks like, but I think I've seen some talk of it on Gitter in which some issues were raised. I'd like the barrier to entry for new kata to be higher.
On a case-by-case basis, but I'd like to see some guidelines and a consensus based vote by multiple moderators. Perhaps even weighing in the community for kata that are likely to retired.
I'm not sure what retiring means in this case, but if we define it as not changing statistics for the author and those that completed it, I think that'd be fine. The kata could then be hidden from view for those that have not completed it.
Some, certainly not all, factors that I would weigh are:
It's not a panacea and unfortunately not easy either, but if possible, a tool that would be able to assist in identifying and linking possibly similar kata based on solutions and descriptions would be great. |
Beta Was this translation helpful? Give feedback.
-
Some simple thoughts.
If a kata is suppressed it must be without any consequences for the author and those who have solved it (but maybe for the one who approved it;-) If nothing is done to prevent new duplicates the process will never end (is it really necessary that it ends? Attracting translations, inducing issues, requiring maintenance all that seem to be something natural and unavoidable). |
Beta Was this translation helpful? Give feedback.
-
One of long lasting problems affecting Codewars are duplicate kata and difficulties with handling them. But as new functions appear and CW maintainers create more and more tools, it can be finally possible to get rid of them, or at least limit amount of duplicated kata. Mods can unpublish betas, content-issues repository can be used to track and discuss problematic instances, etc. That's why I think it would be good to discuss the ideas, options, and possibilities of handling duplicate kata. For example, what is your opinion on following topics?
Please feel free to share any opinion or ideas on the topic.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions