14
\$\begingroup\$

The help center says:

All solutions to challenges should:

  • Correctly implement the required specification.
  • Be a serious contender for the winning criteria in use. For example, an entry to a code golf contest needs to be golfed, and an entry to a speed contest should make some attempt to be fast.

As I understand the phrase, being a "serious contender" means having a significant chance of being the winner. For code golf, this would mean being the shortest solution. But that's silly -- even though an answer in C has no chance of winning when there's golfing languages about, it's surely a valid submission, even if it's longer than one already posted, possibly in the same language.

Now, we know that's not we mean by "serious contender", and the next sentence suggests that it's more about making an effort. But, the help center is for those new to the site, so it should be clear on its own. What do we want this policy to be, and how can we best convey it?

(I had edited in a change in this rewrite drafting, but it hasn't been included and this probably warrants more discussion.)

\$\endgroup\$
  • 3
    \$\begingroup\$ I find that this is a tough question, especially with regards to esolangs where even managing a solution is tricky, let alone golfing it... (e.g. Piet/Hexagony, where golfing typically requires a revamp of the source layout) \$\endgroup\$ – Sp3000 Mar 21 '16 at 8:03
  • 7
    \$\begingroup\$ I've always understood it to mean an earnest contender rather than "the contender has a serious chance of winning." \$\endgroup\$ – AdmBorkBork Mar 21 '16 at 19:08
  • 4
    \$\begingroup\$ I'm not a huge fan of the serious contender requirement. On the SE network, if an answer is on topic, but terrible (e.g. super slow, terrible code design), it's only downvoted, but not removed. Furthermore, it makes programming-puzzles tough to write, because "first posted" means that only the first can be a serious contender. \$\endgroup\$ – Nathan Merrill Mar 22 '16 at 1:13
16
\$\begingroup\$

A serious contender is a submission which makes a serious effort towards optimizing the submission's score within the chosen language(s) and other choices (such as algorithm choice or optional restrictions/bonuses taken).

This is somewhat subjective, in that the best answer in my opinion is "you'll know it when you see it". Some examples of not-serious-contender submissions are:

  • In code golf, having unnecessarily-lengthy variable names (i.e. ratio_of_circumference_to_diameter instead of pi or p), having excessive whitespace/NOPs (i.e. int a = 1; instead of int a=1; in C-based languages), or, in general, writing code that Code Review would like.
  • In code challenges, deliberately crafting a solution that gets a poor score.
  • In King of the Hill, submitting a "suicidal" bot (one that actively works against its win condition, like the infamous EmoWolf).

In short, if the only way a submission could win a challenge (either overall or within its set of choices for language(s), algorithm(s), and/or other relevant categories for the challenge) is if no other solutions were posted, it's almost certainly not a serious contender (like the linked submission above). Note that this does not exclude using a more-verbose language or lengthier approach in code golf, since submissions in all programming languages are welcome, and different submissions in the same language are acceptable so long as the differences are non-trivial.

\$\endgroup\$
  • 4
    \$\begingroup\$ I disagree with your code challenge example, when it first went up I thought it had a chance of doing pretty well. \$\endgroup\$ – undergroundmonorail Mar 21 '16 at 14:03
  • 4
    \$\begingroup\$ I feel like this is missing a big part of the question, which is how should it be worded in the help centre for it to be clear to newcomers? \$\endgroup\$ – FryAmTheEggman Mar 21 '16 at 14:11
  • \$\begingroup\$ @undergroundmonorail I'm not sure why you would think that. Its score is an order of magnitude worse than the serious submissions' scores. \$\endgroup\$ – Mego Mar 21 '16 at 16:25
  • 2
    \$\begingroup\$ @Mego IIRC it was the first answer, so there was nothing to compare it to. That said, I definitely agree that it should be considered not making an effort. \$\endgroup\$ – Martin Ender Mar 21 '16 at 18:01
  • 1
    \$\begingroup\$ Or in KOTH, a suicidal bot would not be a serious contender. \$\endgroup\$ – mbomb007 Mar 21 '16 at 18:36
  • \$\begingroup\$ @MartinBüttner Being the first answer has nothing to do with it. That submission is obviously not a serious contender, regardless of the other submissions. Any naive decompression-based answer would have a significantly better score. Whether or not a submission is a serious contender is independent of the other submissions. \$\endgroup\$ – Mego Mar 21 '16 at 18:39
  • 1
    \$\begingroup\$ @Mego Of course it is (which is why I agree), but undergroundmonorail's point was that he wouldn't have been able to tell without an answer to compare to and your response was "Its score is an order of magnitude worse than the serious submissions' scores." which I don't understand if those serious submissions didn't exist yet. \$\endgroup\$ – Martin Ender Mar 21 '16 at 18:45
  • \$\begingroup\$ @MartinBüttner The point is, even if other submissions aren't present, it's not difficult to imagine many different methods that would score significantly better than a grey rectangle. If the only way your solution could conceivably win is if no others are posted, it's probably not a serious contender. \$\endgroup\$ – Mego Mar 21 '16 at 19:53
  • \$\begingroup\$ @Mego I was aiming for more of a reference solution that was relatively easy to beat, but if you don't, then there's probably something wrong with your method. \$\endgroup\$ – LegionMammal978 Mar 23 '16 at 10:37
  • \$\begingroup\$ For clarity, I didn't realize that the scores were going to be as far apart as they were. I also thought that, if that answer was posted later, it could have beaten people who got too clever for their own good. I didn't think it was going to win. I don't think trying as hard as possible to win is a requirement for being a "serious contender", you just need to make an effort to score well, and at first glance I thought that solution might end up scoring well (again, not the best). \$\endgroup\$ – undergroundmonorail Mar 24 '16 at 2:13
  • \$\begingroup\$ I have an answer to a code-golf question that's 94.37% longer than it could be that I still think is valid. I made an effort to make it short and that was the best I could do considering the restriction I used (byte value input is allowed, I didn't use it). I could post an 8 byte answer to the same question in the same language but I think the current one is still a "serious contender". \$\endgroup\$ – undergroundmonorail Mar 24 '16 at 2:15
  • \$\begingroup\$ @undergroundmonorail That is a restriction imposed by the language choice, which I made a concession for in this answer. \$\endgroup\$ – Mego Mar 24 '16 at 3:27
5
\$\begingroup\$

Proposed wording for Help Center

Make a serious effort towards optimizing for the winning criteria within their chosen language.

In context, this would be:

All solutions to challenges should:

  • Correctly implement the required specification.
  • Make a serious effort towards optimizing for the winning criteria within their chosen language. For example, an entry to a code golf contest needs to be golfed, and an entry to a speed contest should make some attempt to be fast.

The wording is taken from Mego's answer, somewhat condensed for brevity.

\$\endgroup\$
  • 2
    \$\begingroup\$ Nit pick: A submission in language X could not even be trying to be the shortest implementation in X, just the shortest to use the chosen method. \$\endgroup\$ – Nateowami Mar 31 '16 at 9:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .