This problem is not specific to Scala answers (it also affects e.g. Haskell answers), but I'll use Scala as an example. Apologies for the length.

Scala has a problem. It has a sub-community who know how to do things in advanced ways, and are not afraid to reply to simple questions with answers which use advanced techniques (example).

These techniques aren't just advanced - sometimes they are criticised as inefficient, overcomplicated, or hard to read. I am not taking a position on that here, I'm just pointing out that this controversy exists, so even the descriptor "advanced" may be disputed by some as misleading.

Fortunately none of this was a big problem for the user who asked that question, who actually accepted that answer. And I think the answer was intended to be humorous as well as useful. Nevertheless, some beginners learning Scala who encounter such StackOverflow answers, might get scared off Scala as a result of reading this, and other answers like it (on SO and elsewhere). Or, they might be driven away from that question page, or StackOverflow as a whole, by what they judge to be overcomplicated answers.

This is a frequently discussed topic in the Scala community, and I have seen blog comments citing this kind of thing as "Why Scala sucks and I won't use it".

It's also not a new problem. In the 1990s, Perl was an example of a language for which simple questions posted online could elicit "advanced" replies that might have scared people off Perl.

Before you say "it's not StackOverflow's role to help particular languages achieve greater popularity" - I agree. However, the "scaring people off Scala" thing is just an aside for Scala programmers, to help to highlight why this is a problem.

The more general problem is: beginners - especially beginners not particularly familiar with StackOverflow and how it works - and also "intermediate" and "pragmatic" Scala developers - might conclude that because they find that answer hard to follow, they should give up on that SO page. Instead, they might hack something together themselves - maybe in Scala, or maybe not. And thereby miss out on an opportunity to learn - if not from the "advanced" answer, then from one of the less "advanced" answers. Yes, even though the other answers are right there on the same page! Not everyone reads web pages from top to bottom - even programmers!

(This is a key insight of "usability people": most people don't act as perfectly rational robots. And even if someone is "perfectly rational", they might not have time to read and try to understand all the answers.)

Admittedly, hacking something together yourself is not necessarily bad. Having tried to do so, and maybe succeeded, a beginner might be better placed to come back to the answers on Stackoverflow, understand how they work, and appreciate and understand their tradeoffs. However, what if they don't come back to that StackOverflow page, because they got scared off? Call it scared, call it "I don't like complicated nonsense", call it what you will.

There's a more subtle "problem" here as well. Because StackOverflow has no explicit convention or feature for dealing with this problem, some people might feel that the most "socially appropriate" thing to do, is simply not to supply such advanced answers at all to simple questions, to avoid "scaring off the newbies", or "presenting a misleading impression of the Scala community". I know people who feel this way! This is arguably bad for both StackOverflow and the Scala community if it leads to useful answers being self-censored and/or not upvoted.

My proposal: Either a social convention, or a new feature, to allow answers to be marked as "advanced" - with some canonical text that explains what "advanced" means.

Now that could be extended - there could be a site feature, or if people don't want that, a Greasemonkey script, that allowed users to replace all "advanced" answers with "Click to show 'advanced' answers". Some might scoff at this idea, but e.g. first-year undergraduates who had never programmed before in any language (and yes, Scala is being taught to undergraduates now) might actually want to use such a feature.

But that's just an extension. The core idea is purely to have the ability to mark answers as advanced in some way - so if you don't like the "hide advanced answers" idea, please don't downvote purely on that basis.

I'm not wedded to any of this. But I do think it's a serious problem that needs addressing, somehow.