Although we have consensus on the Definitive policy about answers not meeting the challenge specification, it is aimed at answers rather than challenges. I had assumed that would imply that a challenge should avoid inviting non-competing answers, but there doesn't seem to be anything on meta to make that explicit.

Should a challenge author be free to allow certain types of non-competing answer that would be excluded in general?

As an example, LCM of Rational Numbers has a rule against certain builtins but still invites them to be posted:

Submissions that would feed rational numbers to an LCM/GCD builtin are allowed, but non-competing.

  • \$\begingroup\$ Note that this question isn't about whether we should allow builtins, or how we should deal with non-competing answers. Those questions are covered elsewhere on meta. This question is simply "Is a challenge author permitted to override our ban on non-competing answers?" \$\endgroup\$ Jun 19, 2017 at 20:09
  • 3
    \$\begingroup\$ There should be a limit on the extent to which we control PPCG. Too few rules and there's anarchy, too many and you have totalitarianism. At the moment I think we're verging on having too many rules, spoiling the fun. \$\endgroup\$
    – Beta Decay
    Jun 19, 2017 at 21:13

4 Answers 4


Allow authors to mark some answers non-competing

It may be interesting to see answers that could potentially break the challenge (e.g. built-ins). However, answers that have been banned per meta consensus should not be posted, and answers that are not banned should be competing unless the question's rules state otherwise.

That is, the non-competing status should only apply to the "new languages," unless the challenge defines what "non-competing" means.

The non-competing status may make some challenges more interesting. Using the link in the question as an example, the challenge would seem trivial and boring at first glance without the distinction between competing and non-competing answers, as it contains quite a few submissions with built-ins. However, that is not the case, since the question is nontrivial in many languages.

Including the rule that some solutions are non-competing would signify that the challenge author is still interested in lengthy, nontrivial solutions. Personally, I think "non-competing" should be a stronger form of "allowed but discouraged."

The non-competing status could also serve as a gray-area, in which people could post interesting and nontrivial answers, without the challenge author having to ban them for fairness. I have seen questions (e.g. this) that explicitly disallow certain types of functions, but the banned solutions were still interesting. Allowing non-competing solutions would prevent those answers from never being posted, without losing any "fairness."

  • \$\begingroup\$ @ais523 I also think that banning builtins is problematic, and I'd rather see them not banned anywhere, but this question is specifically about whether a challenge author can choose to ban something but still invite non-competing answers that use that thing. It isn't clear to me whether this answer is addressing that question. \$\endgroup\$ Jun 19, 2017 at 20:01
  • \$\begingroup\$ A problem with the author marking answers non-competing is that most new users on the site don't know what golfing languages are, and may think that they're "cheating". \$\endgroup\$
    Jul 18, 2018 at 16:30

Do not allow more "non-competing" answer types

Non-competing answers generally exist, in my opinion, because of a bad rule. Take the (since changed) "newer language than the challenge" non-competing answers as an example. These answers are good and made fully in the spirit of the site and its competitions, but needed this odd marking to indicate that they may have cheated. While I believe the rule banning languages/features that were designed specifically for the challenge is necessary to prevent abuse, the cases of abuse are clearly distinguishable from those of non-abuse. However, the cost of the "non-competing" tag used to show good intentions is many new users thinking that they can post whatever they want if they put some magic words in the title.

For challenges, this works out to the same problem. Visibly non-competitive answers are detrimental to the site. A challenge should either ban something, or not ban it. If it is not banned, people can still post an answer that does not use the banned features. That is the type of participation that we should be fostering.

Banning something, but then saying you can post it, you just can't "win" contributes to the notion that our site is only about winning, and winning the inter-language competition. Our site is about interesting programming challenges, such as golfing. I don't think anyone thinks it is particularly interesting to post single token answers, so if you don't ban them people will still come up with interesting answers.

I believe the general solution with respect to the case mentioned is to stop upvoting trivial answers, not to ban but not actually ban them.


Imagine a deliberately simplified challenge to demonstrate the problem:

Write a program that simulates your cat. If you don't have a cat, and don't know how to program, feel free to just post a photo of your dog.

The problem with this is that both types of answer are now jumbled together, and both will gain upvotes but for different reasons, so sorting by votes will not be meaningful. Although the Stack Exchange model is not perfect for programming contests, one thing it does well is presenting a list of answers in one place that can be meaningfully compared.

There are people who like pictures of dogs, and there are people who like cat simulating programs. Both groups are served better if the two categories are presented in separate lists. Even people who like both benefit from being able to choose which to browse through on any given day.

If a challenge author wishes to also see answers that are not valid for their particular challenge, then they should either post a separate challenge (if it is on topic here) or start a thread on another site and link to it from the original challenge (if they want to see things like photos that are relevant to the challenge but not on topic here).

  • \$\begingroup\$ One problem with separating challenge is that if the two parts of a question are similar enough, one of them will likely be closed as duplicate. \$\endgroup\$ Jun 21, 2017 at 9:08
  • 1
    \$\begingroup\$ If the rules are sufficiently different that the winner on one is not trivially modifiable to be the winner on the other, then they are unlikely to be regarded as duplicates. This could be a problem for languages that don't have a built in, if built ins are banned in one challenge, as the same answer would then win both challenges for that language. I see this more as a reason not to ban built ins though. For other cases a separate challenge should work well. \$\endgroup\$ Jun 21, 2017 at 10:48

OP can specify that certain types of answers aren't outright banned, but they will be for-reference-only and ineligible to win.

Using the linked challenge as an example, it would make sense to make builtins that basically do the job non-competing (yes I'm looking at you, M), given that they make the challenge boring, but making them grounds for deletion would make the challenge lack references to builtins that would have solved the challenge otherwise, and I believe references to them should exist nevertheless.

Another thing is the way OP intended for the challenge to be solved, and OP may still consider builtins useful contributions. Also, it's OP who decides what their challenge exactly is, and they can pretty much override any meta consensus, so why not let them put such a rule in there too?

Since calling this kind of answers "non-competing" can be confused with the answer using a newer language or language version than the challenge, I propose calling those answers as for-reference-only.

  • 1
    \$\begingroup\$ I don't feel as though giving them a different name will fix the problems that non-competing answers had. I suspect people would still post entirely irrelevant answers and defend them as being for reference. Why do you think changing the name would help? \$\endgroup\$ Jun 20, 2017 at 15:07
  • \$\begingroup\$ @FryAmTheEggman Completely irrelevant answers will be deleted of course. Read the post; it refers to certain type(s) of answers OP has decided to be non-delete-worthy, not just any answer not following the rules. \$\endgroup\$ Jun 20, 2017 at 15:12
  • 2
    \$\begingroup\$ That's not what I was referring to. I was asking why you thought changing the name of these answers would affect the number of bad answers that are posted and have to be deleted. Please don't assume I haven't read your post, it's not particularly polite. \$\endgroup\$ Jun 20, 2017 at 15:18
  • \$\begingroup\$ @FryAmTheEggman I wasn't talking about affection of answers by a name change here, I just suggested that as to not confuse such answers with answers using stuff newer than the challenge. \$\endgroup\$ Jun 20, 2017 at 15:20
  • \$\begingroup\$ The reason I was asking was to see if you had omitted some reasoning about why this would be better than before. Are you saying you don't think this will be any better than marking them non-competing, except that it will be different (and therefore not confusing)? \$\endgroup\$ Jun 20, 2017 at 15:27
  • \$\begingroup\$ @FryAmTheEggman OP shouldn't have to figure out by themselves if "non-competing" means that the answer uses stuff newer than the challenge if they do know the language or if it uses builtins if they don't know the language at all. Of course an explanation would be even better. \$\endgroup\$ Jun 20, 2017 at 15:30
  • 1
    \$\begingroup\$ The old use of non-competing doesn't exist anymore, though. While the precise way to move forward isn't set out yet, I think it's safe to say answers with that header won't be posted anymore. \$\endgroup\$ Jun 20, 2017 at 15:35
  • \$\begingroup\$ @FryAmTheEggman That's quite unstable yet I think...in the meantime I wouldn't really trust everybody follows that. \$\endgroup\$ Jun 20, 2017 at 15:38

You must log in to answer this question.

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