9
\$\begingroup\$

The overall goal of StackExchange is to help improve the Internet by building a community where information can be shared in a format that is useful to the world at large. Sure, this site is generally more of a "fun" SE than it is a "practical" one. But I see no reason why the answers here should be so much less useful to an outside audience than on any other SE site.

On most other SE sites, a single line of code - or several lines of uncommented code - isn't considered a "good answer". While the code itself may solve the problem posed, it does nothing to help explain why the problem was there in the first place or how it was solved. Here, on the other hand, most answers are of the format:


[Language Name]: [Character Count]

SuperLongStringOfUberCompressedHighlyIllegibleAndUnCommentedCodeLoremipsumdolorsitametconsecteturadipisicingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaUtenimadminimveniamquisnostrudexercitationullamcolaborisnisiutaliquipexeacommodoconsequatDuisauteiruredolorinreprehenderitinvoluptatevelitessecillumdoloreeufugiatnullapariaturExcepteursintoccaecatcupidatatnonproidentsuntinculpaquiofficiadeseruntmollitanimidestlaborum

On any SE site other than this, such answers would probably garner a lot of unfriendly comments, down-votes, and perhaps even flags. And there is good reason for this.

This sort of answer helps nobody except the answerer. They'll get up-votes for either having the shortest answer in the thread, or the shortest answer in that particular language. They might even get an occasional up-vote from someone who can actually read and comprehend the mangled code, and sees an interesting trick used. If they're lucky they'll get the answer accepted, even if the person posing the challenge doesn't have a clue what's going on in the code, just because the asker is willing to rely on the rest of the community's votes to validate that the code is good.

However, this doesn't help anyone else who might be even slightly unfamiliar with the language or the methods used in the answer. This also highly obfuscates the answer's quality and eligibility to meet the challenge from a large portion of the audience - perhaps even from the person who posed the challenge.

In fact, this can do a dis-service to answerers as well. With fewer people understanding what's going on in the code, possibly including the asker, fewer people will feel like they understand it well enough to up-vote or even accept the answer.

I would like to suggest that more people adopt the following policy for their answers, and perhaps we should even include this in the help center.


All answers should include:

  • Name of the language(s) used.
  • (Code Golf) Count of characters in the code.
  • Details of how the code measures up against other objective winning criteria defined in the question.
  • (Code Golf) Golfed version of the code.
  • Un-golfed version of the code.
  • More details, either as part of the answer or comments in the un-golfed code:
    • How key elements of the code work.
    • (Code Golf) How certain challenging parts of the code were shortened.
    • Any other interesting challenges you encountered while writing the code, and how you overcame them.
  • Screenshots or other demonstrations of the program output.
  • If you edit the answer later on, to shorten or otherwise improve the code, explain what you did and why.

This will serve several beneficial purposes:

  • Better educate this StackExchange community.
  • Better educate outside visitors to the site.
  • Adds more content to answers which will help them show up in search engine results, increasing traffic to the site.
  • Increases the chance that answers will be up-voted and/or accepted by more users.

Without setting and maintaining such standards as this, I'm afraid we're only hurting this site. One of the reason StackExchange sites are successful in general is because answers are held to high standards such as this. If this site ever hopes to get out of beta, I believe it needs to hop on that wagon.

\$\endgroup\$
  • 6
    \$\begingroup\$ I largely agree, but the main way to get there is to lead by example. I've done my best. \$\endgroup\$ – dmckee Nov 24 '13 at 20:32
  • \$\begingroup\$ I not agree in write too much... But some code with right indentation and some good comment it is good; as it is good show the result and how to use the code...sometime code explain itself better than every comment \$\endgroup\$ – RosLuP Nov 25 '16 at 16:31
4
\$\begingroup\$

I believe that posting this sort of information with an answer is a good idea, and really adds to the site; I tend to post long, detailed explanations with my answers if they're at all nontrivial. (Some answers really are just doing things in the most direct possible way, though, and are immediately clear upon reading them if you know the language; I don't think explaining these would be helpful unless the language is particularly hard to read, such as a golfing language.)

I don't believe that deleting or downvoting answers that lack an explanation is a good thing, even if the answer is unexplained and would benefit from an explanation. Feel free to ask for an explanation in the comments (and in the admittedly rare case where you can provide one yourself, ask the author if they're willing to let you edit an explanation into their answer), and feel free to not upvote an answer you'd normally otherwise upvote because it's missing an explanation (especially given that you shouldn't be upvoting answers merely for being short in the first place); we should be encouraging explanations.

However, I don't think we should be requiring explanations. In addition to the fact that sometimes there just isn't that much to explain (as is the case in many but not all answers, for example), I think an unexplained answer still contributes to the site rather than detracting from it; not as much as an explained answer would, but it's still useful. Even if it has no real hope of winning, the experience that the answerer got writing it will tend to help them out, both in doing better at answering questions in the future, and in being better at writing explanations. And if it is a serious competitor, it's highly likely that either the answerer will be able to edit in an explanation on request, or that someone else will.

\$\endgroup\$
0
\$\begingroup\$

TL;DR: Recommend deletion of new answers that enter the Low Quality queue that don't meet the requiremens in this question.

There is a simple solution to this, and I decided to take this path:

Answers that only consist of code will automatically enter the Low Quality queue, where I recommend deletion.

I know this might sound harsh, but I don't see a point in more code only answers. I already wrote about this in an other answer, to summarize:

  • Entries are public, not like most other code golf contest sites.
  • If you want to keep your solution (and how it works) as secret, you are wrong here.
  • If you don't keep it as secret, take some time and explain how it works, what genius trick you used to get a better score...
  • If you just post an answer without any explaination it won't help others without dechiphering your golfed code.

So please do a few of the following things in your answer:

  • Include a ungolfed version of your program. This makes it easier to understand your solution.
  • Add some explaination how it works. "Uses the same approach as John Does answer" is fine for me if John Does answer explain how it works.
  • Explain the genious things in your answer.

To make it short: I want to learn from others, and this could work fairly well here.
But if noone takes the time to explain things, our audience will lower (just an other code-golf site).

To work against this, I decided to take a radical action: Recommend deletion of posts that only contains code.

We will never get out of beta if we can't find a niche where we could be good at.
I believe this niche can be explaining how.

Note: I have myself many posts that only consists of code, and I currently try to update them. If you find one, leave a comment and I'll fix it. And please stop upvoting posts that don't meet the requirements.

\$\endgroup\$
  • \$\begingroup\$ I know that this behaviour might look counter-productive, but I hate the broken window syndrome, so better clean it up. \$\endgroup\$ – Johannes Kuhn Dec 16 '13 at 15:01
  • 4
    \$\begingroup\$ If you delete peoples answers you'll discourage them from hanging around and answering again in future. I don't think we can afford to discourage people from answering. \$\endgroup\$ – Gareth Dec 16 '13 at 22:23
  • \$\begingroup\$ If you see a better way to estabish a good answers so that new people don't just post code and if they do, we can say "wait, please explain that a bit" without looking stupid, please suggest it. But I don't see a better way than editing my own old answers and preventing new bad answers by deleting them. \$\endgroup\$ – Johannes Kuhn Dec 17 '13 at 9:06

You must log in to answer this question.

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