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.