I've noticed that on many questions, the answer which should be the (current) winner gets very few upvotes and is not accepted. The accepted answer issue is hard to fix, but the upvotes element is easier.

The question is: Should we be upvoting the winning/leading answer by default? Obviously, we shoud upvote every answer we like, but shouldn't a or a be more than just a popularity contest? I'd like to hear other people's opinions - Is this a problem? Should we make a conscious effort as a community to fix it?

Examples of this issue: (Taken from my answers, but I'm sure this happens to lots of people.)

Convert a string of binary characters to the ASCII equivalents

Convert numbers to symbols without string or char literals

• The problem with upvoting leading answers in code golf is that they are often written in esoteric languages which few people understand. I tend not upvote those unless they contain a very good explanation (and I can be bothered to read it). I think one of the main reasons that the most golfed answer often doesn't get the most upvotes is that it's also the most obscure one (even in other languages). And I also like to upvote clever solutions even if they aren't leading. That being said, I do agree that the leading answer in particular deserves some attention for whether it should be upvoted. – Martin Ender Jul 29 '14 at 7:23
• @MartinBüttner I understand your point. I've been on the other side of the esoteric languages divide as well. It would be really nice if we could codify some sort of separation, e.g., upvote the best esoteric and the best non-esoteric answers, but that always seems to fail miserably. – isaacg Jul 29 '14 at 7:30
• I guess, the reality is, in the end everyone can do with the votes whatever they want. – Martin Ender Jul 29 '14 at 7:36
• From what I have seen, its got more to do with who answers first than who has the winning/most interesting/funniest answer. Answers that take more time to produce get less attention than those posted quickly as soon as the question is asked. – rdans Jul 30 '14 at 20:18

The shortest answer is not always the most interesting.

It just comes down to that. One of the most enjoyable parts of code golf is the satisfaction of squishing out those last few bytes with some ridiculous bit-shifting tricks or something, even if your code is twice as long as the winner's.

Take this scenario: There are two answers to a code golf question. One's in a language like GolfScript, and one's in an ultra-compact Cthulhu-summoning wrath-inducingly condensed version of C that makes unicorns cry, with gems like f(n){return n<4?1:f(--n)+f(--n);} (this code was actually scrawled in blood written for a challenge on the site, if you want to bother searching for it).

Okay. so maybe that's a bit of an exaggeration (of course, there's much crazier stuff on the site if you're willing to look for it), but the point is: Just short does not equal fascinatingly short. Subjective, of course, but it's probable that most people who come here for the golf don't come just to count exactly how many characters some solution is. They come to see the madness that happens when you turn O(n log n) into O(n^n!) to save a single character.

Also note that you shouldn't expect as many upvotes if you've invented your own language for code golf. Is that fair? Maybe not. But taking a commonplace, practical language and pushing its limits is, for the most part, much more enjoyable than effortlessly beating everyone else by a factor of two or three with a language that you specifically designed to be exceptionally short.

Also, votes are subjective. People vote how they vote; you're not about to change that.

• Thank you for the excellently reasoned answer. I think you're correct on nigh on every point, and answers like the ones you describe remind me of what makes this site great. I'll try to keep that in mind in the future. – isaacg Jul 29 '14 at 7:41
• Yup. For me it boils down to: (1) come for the "ooooh, I never tried that!" moments (2) enjoy the party (3) SE points != knowledge and karma. – Scott Leadley Aug 1 '14 at 21:45
• I want a "ultra-compact Cthulhu-summoning wrath-inducingly condensed version of C that makes unicorns cry" T-shirt – William Barbosa Aug 7 '14 at 0:44

I agree with the sentiment, but only for comparisons of the same language. There's no point comparing C to Golfscript -- Golfscript will pretty much always win. But it would be nice if the better-scoring of the C answers were higher. As I see it, code golf is a per-language competition.

There's an unfortunate trend where mediocre golfs written soon after the post float quickly to the top, getting visibility and thus more upvotes and more visibility. On the other hand, a golf posted after the initial rush that took time to squeeze out characters and improve on existing golfs risks lingering at the bottom, ignored.

Sometimes, the submission floats up, but other times, it never gets the initial jolt, perhaps because nobody scrolls down to see it, or because their attentions have moved on. It's frustrating to spend time on a laborious and well-documented golf, only to see it ignored in favor of submissions that took less effort and show less ingenuity.

I know that upvotes are meaningless Internet points. But, they carry with them attention and comments, and an implicit acknowledgement of a job well done. It would be nice for them to consistently reward good golfing.

This is not to say that upvotes should only be based on code length. Method, creativity, and language choice can also inspire someone to upvote, even on objective challenges. But as is, I believe submitting early is at least as effective as submitting well-golfed code for getting upvotes, and that's no good. (This probably doesn't apply for languages like Golfscript, which float up regardless, perhaps because voters are endlessly amazed to see random-looking strings of characters).

I make a conscious effort to upvote shorter solutions (language-adjusted), and sometimes that means not upvoting a longer one of the same language, even if I still like it. But, I don't think the solution is to get others to do the same.

I think a technological solution is needed. Something like a sort-by-score with a by-language filter. This would require new tech, and I don't know how possible it is. Ideally, the score would be assigned by the question-asker or perhaps voted on by the community to resolve disagreements.

This can be a particular problem in king-of-the-hill challenges, where you get more rep from a joke answer than a good one (see for example EmoWolfWithAGun in Save the last bullet for yourself).

Decent king-of-the-hills usually attract a bounty, which offsets this slightly, but a well thought out second place answer will often get fewer upvotes than a drive-by joke answer.